Підключення хмарних сховищ Яндекс.Діск, Google Диск і OneDrive в Linux CentOS

У цій статті ми розглянемо, як підключити безкоштовні хмарні сховища Яндекс.Діск, Google Диск і OneDrive в Linux CentOS для використання їх під бекапи або простого обміну файлу між різними операційними системами. Наприклад, ви можете встановити клієнт хмарного сховища у себе в Windows, завантажити в нього файли і автоматично отримати доступ до них з Linux (або навпаки).

Найчастіше власники або веб-розробники будь-якого ресурсу, не замислюються, що при нестачі місця на віртуальній машині або контейнері, можна скористатися хмарними сховищами. У своїй роботі я часто рекомендую користувачам, підключати той же Яндекс.Діск до себе на VDS, щоб зберігати якісь не часто використовувані матеріали або бекапіть туди сайт і бази MySQL / MariaDB.

У даній статті ми розглянемо підключення найбільш розповсюдженний безкоштовних сховищ Яндекс.Діск, OneDrive і Google Диск (Google Drive) на віртуальну машину з попередньо встановленою ОС CentOS 7.

зміст:

  • Підключення Яндекс.Діск в Linux CentOS через WebDAV
  • Підключення Google Диск (Google Drive) в якості сховища в Linux
  • Підключення хмарного сховища OneDrive в Linux

Підключення Яндекс.Діск в Linux CentOS через WebDAV

Розглянемо, як підключити хмарне сховище Яндекс.Діск в Linux за допомогою протоколу WebDAV.

WebDAV - набір розширень і доповнень до протоколу HTTP, що підтримують спільну роботу над редагуванням файлів і управління файлами на віддалених серверах.

У цій інструкції ми підключимо Яндекс.Діск як файлову систему до віртуального сервера з Linux CentOS за допомогою клієнта davfs2. Покажемо, як налаштувати автоматичне монтування хмарного сховища Яндекс через автозагрузку.

Зазвичай пакет davfs2 вже повинен бути встановлений в системі, але може бути таке, що він не встановився, тому робимо установку. Потрібно підключити репозиторій Epel і встановити сам пакет через yum:

yum install epel-release -y
yum install davfs2 -y

Перевіряємо, що модуль fuse на машині присутній:

ls -l / dev / fuse

Висновок повинен бути приблизно таким:

[Root @ master ~] # ls -l / dev / fuse

crw-rw-rw- 1 root root 10, 229 Sep 2 9:54 / dev / fuse

Створюємо окрему директорію для нашого хмарного сховища:

mkdir / mnt / yad /

Після того, як всі підготовчі роботи виконані, можемо приступити до підключення Яндекс.Діск до сервера.

Монтуємо Яндекс.Діск до створеної раніше директорії:

mount -t davfs https://webdav.yandex.ru / mnt / yad /

Після введення команди, в консолі вийдуть поля, де потрібно буде вказати вашу поштову скриньку на Яндексі і пароль від нього

Username: Password: 

У мене диск підключився без проблем:

[Root @ master ~] # df -h

Filesystem Size Used Avail Use% Mounted on / dev / vda2 80G 1.2G 79G 2% / devtmpfs 1.9G 0 1.9G 0% / dev tmpfs 1.9G 0 1.9G 0% / dev / shm tmpfs 1.9G 8.5M 1.9G 1% / run tmpfs 1.9G 0 1.9G 0% / sys / fs / cgroup / dev / vda1 240M 109M 115M 49% / boot tmpfs 379M 0 379M 0% / run / user / 0 https://webdav.yandex.ru 10G 39M 10G 1% / mnt / yad
За замовчуванням Яндекс пропонує всім своїм користувачам безкоштовно 10 Гб на хмарному Яндекс.Діск.

І відразу можна переконатися, що вміст Яндекс.Діск тепер доступно в Linux:

[Root @ master yad] # ls -la / mnt / yad /

total 39867 drwxr-xr-x 3 root root 392 Apr 5 2012. drwx ------ 2 root root 0 Sep 2 11:56 lost + found -rw-r - r-- 1 root root 1762478 Sep 2 11:54 Гори.jpg -rw-r - r-- 1 root root 1394575 Sep 2 11:54 Зіма.jpg -rw-r - r-- 1 root root 1555830 Sep 2 11:54 Мішкі.jpg -rw-r - r-- 1 root root 1080301 Sep 2 11:54 Море.jpg -rw-r - r-- 1 root root 1454228 Sep 2 11:54 Москва.jpg -rw-r - r-- 1 root root 2573704 Sep 2 11:54 Санкт-Петербург.jpg -rw- r - r-- 1 root root 31000079 Sep 2 11:54 Хлібні крошкі.mp4 

Створимо файл в підключенні WebDav каталозі файли і перевіримо, що він з'явився в веб-версії Яндекс.Діск:

[Root @ master yad] # touch /mnt/yad/test.txt
[Root @ master yad] # ls -la / mnt / yad /

total 39867 drwxr-xr-x 3 root root 424 Apr 5 2012. drwx ------ 2 root root 0 Sep 2 11:56 lost + found -rw-r - r-- 1 root root 0 Sep 2 12:08 test.txt


Файл з'явився, наше підключення до хмарного сховища Яндекс.Діск працює нормально, локальний файл автоматично синхронізується з хмарою.

Для спрощення монтування, додамо його в rc.local, щоб після рестарту сервера, сховище Яндекс.Діск монтувалось автоматично.

Для цього, створюємо файл / Etc / davfs2 / secrets:

touch / etc / davfs2 / secrets

і додаємо туди шлях до директорії, в яку монтуємо Яндекс.Діск і логін / пароль користувача Яндекс:

/ Mnt / yad user password

У rc.local додаємо наступний рядок:

mount -t davfs https://webdav.yandex.ru / mnt / yad /

Робимо рестарт Linux і перевіряємо доступність хмарного диска:

У мене після перезавантаження сервера, сховище примонтировать автоматично. Але іноді файл rc.local не читається при запуску сервера, в такому випадку для автозапуску сервісу rc-local виконайте наступні команди:

chmod + x /etc/rc.d/rc.local
systemctl enable rc-local

На цьому настройка і підключення Яндекс.Діск в Linux CentOS завершена.

P.S. Наостанок хотілося додати, що якщо ви використовуєте контейнер OpenVZ, модуль fuse за замовчуванням відключений, з боку Ноди потрібно підключити модуль до вашого контейнера наступним чином:

modprobe fuse - додавання модуля на ноду

vzctl set 101 --save --devnodes "fuse: rw" (Де 101 це ID потрібного контейнера) - додавання модуля до потрібного контейнера

І після даних маніпуляцій робимо рестарт контейнера.

Підключення Google Диск (Google Drive) в якості сховища в Linux

Розглянемо як підключити хмарне сховище Google Диск (Google Drive) в Linux CentOS 7. Встановлення його дуже проста і швидка.

Завантажуємо клієнт Google Drive підключити командою:

wget -O drive https://drive.google.com/uc?id=0B3X9GlR6EmbnMHBMVWtKaEZXdDg

Переміщаємо файл директорію / usr / sbin командою:

mv drive / usr / sbin / drive

Даємо права на файл:

chmod + x / usr / sbin / drive

На цьому установка клієнта Google Drive завершена, нам залишається лише запустити його і пройти авторизацію:

drive

[Root @ master ~] # mv drive / usr / sbin / drive
[Root @ master ~] # chmod + x / usr / sbin / drive
[Root @ master ~] # drive

Go to the following link in your browser: https://accounts.google.com/o/oauth2/auth?client_id=367116221053-7n0vf5akeru7on6o2fjinrecpdoe99eg.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type = code & scope = https% 3A% 2F% 2Fwww.googleapis.com% 2Fauth% 2Fdrive & state = state Enter verification code:

Потрібно скопіювати посилання і відкрити її в брузере на ПК, після чого дозволити доступ до аккаунту.

Після цього, вам буде надана посилання, яку потрібно буде ввести в консолі Linux:


Google Drive підключений, однак він підключений не через WebDav (не підтримується), і ви не бачите його як окрему файлову систему і локальний каталог. Всі звернення до сховища Google виконуються через клієнт drive

Можна перевірити які файли присутні на сховище Google Диск командою drive list:

[Root @ master ~] # drive list

Id Title Size Created 1hG1VSNM67IOXlYCVQp9YqhJlFYU2g1qw test.txt 5.0 B 2019-09-02 17:01:13 1ih29E4B4piOho3oupLu2YXWfHZtIA330 DE30EF56-523D-4F90- ... EE62DD392E89-1.mov 351.0 MB 2019-08-22 10:41:56 15qbRDBAZztBkN2rWCBhnYidMArTbaqW3 CALLU_8-7- 2019_15-35-28_Private.mp3 83.2 KB 2019-07-08 15:35:40 1A4BUo_PTVH460SAAkbJKmgDlY1567Hno CALLU_8-7-2019_15-31-7_Private.mp3 1.3 MB 2019-07-08 15:34:10 

Файли виводяться у вигляді таблиці з чотирма стовпцями:

  • Id - унікальний код файлу
  • Title - назва файлу
  • Size - розмір
  • Created - дата створення

Для тесту можемо створити файл і передати його на g.drive:

touch drive.txt && drive upload --file drive.txt

Файл створився, і видно в консолі:

1KbdgtW3jJz46_zZ0Wv-ceBcUSSvEp5n- drive.txt 0.0 B 2019-09-02 17:49:30

Так само перевіримо, що файл з'явився в веб-інтерфейсі Google Диск:

Як бачимо, файл на місці.

За замовчуванням Google пропонує безкоштовні 15 Гб на своєму Google Диск.

На цьому підключення Google Диск до нашого сервера Linux закінчено. У чому мені подобається Google Drive, так це в тому, що не потрібно виконувати якісь додаткові маніпуляції на сервері, щоб хмарне сховище монтувалось після перезавантаження сервера. Можна скільки завгодно раз перезапускати ваш сервер, Google Drive буде підключатися автоматично. Але також є свої мінуси, наприклад, на сервері ми не бачимо сховище, як окрему директорію і не можемо управляти файлами на рівні файлової системи або звичними командами bash.

Підключення хмарного сховища OneDrive в Linux

OneDrive - хмарне сховище компанії Microsoft. За замовчуванням воно є для всіх користувачів Windows 10 з прив'язаним аккаунтом (в сховище OneDrive безкоштовно надається 5 Гб місця). Наше завдання підключити хмарне сховище OneDrive в CentOS 7. В процесі настройки я зіткнувся з безліччю проблем, які шляхом наукових експериментів вдалося вирішити. Вам же потрібно тільки ознайомитися з інструкцією і відтворити всі дії у себе на сервері.

Для початку нам потрібно зареєструватися за посиланням _https: //onedrive.live.com

Процедуру реєстрації я опущу, так як вона не відрізняється від реєстрації на будь-якому іншому ресурсі.

Тепер встановимо необхідні пакети в Linux CentOS:

yum groupinstall 'Development Tools' -y
yum install libcurl-devel -y
yum install sqlite-devel -y

Після цього встановимо мову програмування D (dlang), він буде потрібно для установки клієнта OneDrive:

curl -fsS https://dlang.org/install.sh | bash -s dmd

Щоб запустити середовище D (dlang), введемо команду:

source ~ / dlang / dmd-2.088.0 / activate - в вашому випадку версія dmd може відрізнятися, вказуєте свою.

Запустивши dlang, ми проведемо установку самого клієнта OneDrive:

сd / opt
git clone https://github.com/abraunegg/onedrive.git
cd onedrive
./ configure
make clean; make;
sudo make install

Установка завершена, тепер потрібно пройти активацію в веб-версії OneDrive.

Запускаємо команду:

OneDrive

Система вам видасть посилання, яке потрібно ввести в браузері. У веб формі із запитом доступу потрібно натиснути кнопку Дозволити. Після цього посилання зміниться унікальну з кодом, яку і потрібно буде ввести в консолі Linux. У мене сформувалася така посилання https://login.microsoftonline.com/common/oauth2/nativeclient?code=M74bb67a8-f9a6-1a26-e345-c45a3324de49:

(Dmd-2.088.0) [root @ master onedrive] # onedrive

Authorize this app visiting: https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=22c49a0d-d21c-4792-aed1-8f1623982546&scope=Files.ReadWrite%20Files.ReadWrite.all%20Sites.ReadWrite .All% 20offline_access & response_type = code & redirect_uri = https: //login.microsoftonline.com/common/oauth2/nativeclient Enter the response uri https://login.microsoftonline.com/common/oauth2/nativeclient?code=M74bb67a8-f9a6-1a26- e345-c45a3104de49 

Після підтвердження посилання, я можу виконати синхронізацію з хмарним сховищем OneDrive:

(Dmd-2.088.0) [root @ master onedrive] # onedrive --synchronize

Initializing the Synchronization Engine ... Syncing changes from OneDrive ... Processing 6 changes Creating directory: Pictures Creating directory: Documents Downloading file Getting started with OneDrive.pdf ... done. Creating directory: backup Downloading file backup / test.txt ... done. 

За замовчуванням, у мене створилася директорія / root / OneDrive, в якій з'явилися всі каталоги мого хмарного сховища.

(Dmd-2.088.0) [root @ master OneDrive] # ls -la / root / OneDrive /

total 392 drwxr-xr-x 5 root root 94 Sep 3 11:15. dr-xr-x --- 10 root root 267 Sep 3 11: 15 ... drwxr-xr-x 2 root root 22 Sep 3 11:15 backup drwxr-xr-x 2 root root 6 Sep 3 11:15 Documents -rw -r - r-- 1 root root 398083 Sep 3 9:38 Getting started with OneDrive.pdf drwxr-xr-x 2 root root 6 Sep 3 11:15 Pictures 

Для тесту я створив файл test2.txt і виконав синхронізацію:

[Root @ master backup] # onedrive --synchronize

Initializing the Synchronization Engine ... Syncing changes from OneDrive ... Uploading new file ./backup/test2.txt... done. 

Файл захитався в хмару Microsoft:

Щоб змінити директорію за замовчуванням, потрібно в файлі конфігурації змінити параметр sync_dir і після цього запустити команду:

onedrive --synchronize --resync

Initializing the Synchronization Engine ... Syncing changes from OneDrive ... Processing 7 changes 

Після перезавантаження сервера, клієнт OneDrive запускає автоматично і не потрібно повторно проходити авторизацію.

На цьому настройка OneDrive на сервері з CentOS 7 закінчена, сподіваюся, що інформація буде для багатьох корисна. У наступній статті ми розглянемо, як використовувати хмарні сховища для бекапа даних з Linux сервера.