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

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

centos-безкоштовно-хмарне сховище

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

Підключення Яндекс.Діск в 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 09:54 /dev/fuse

модуль fuse в linux centos

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

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

І відразу можна переконатися, що вміст Яндекс.Діск тепер доступно в 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

автоматичне монтування Яндекс.Діск при завантаженні в linux centos

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

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

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

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

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

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

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

PS Наостанок хотілося додати, що якщо ви використовуєте контейнер 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:

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

gdrive - разрешить доступ к google диску в linux centos

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

клієнт gdrive в linux для синхронізації з Google Drive
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 – назва файлу
  • Розмір – розмір
  • 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 Диск

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

За замовчуванням 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 в Linux

Установка завершена, тепер потрібно пройти активацію в веб-версії 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 09: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:

веб інтерфейс OneDrive

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

onedrive --synchronize --resync

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

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *