Как подключить и смонтировать Яндекс Диск и Google Диск в Centos

Как подключить и смонтировать Яндекс Диск и Google Диск в Centos

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

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

В этой инструкции:

  • Подключение Яндекс.Диска в Linux CentOS через WebDAV
  • Подключение Google Диск (Google Drive) в качестве хранилища в 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 09: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%MINIFYHTMLf943a1a7498020e9b3abdc317abd81457%
%MINIFYHTMLf943a1a7498020e9b3abdc317abd81458%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.

21:10
1045