29 декабря 2017 г. Google xubuntu Бэкап Python Ubuntu EN In English

Монтируем Google Drive диск через gdfs на Ubuntu 17.04

Я использую Google Drive для хранения бэкапов на некоторых своих серверах, но можно выдумать множество сценариев использования этого облачного хранилища.

Для этого нам необходимо будет установить клиентскую библиотеку для работы с API Google, драйвер gdfs, получить код авторизации и настроить автоматическое монтирование при загрузке сервера.

Установка Google API клиента

Клиент нужен для авторизации gdfs

sudo apt install -y python-pip
git clone https://github.com/google/google-api-python-client
cd google-api-python-client
sudo python setup.py install install_egg_info

Установка Google Drive FS

Установим gdrivefs и сделаем симлинк для удобства

sudo pip install gdrivefs
cd /sbin
sudo ln -s `which gdfs` mount.gdfs

Настройка

Надо пройти авторизацию для Google API Client и создать каталог для монтирования диска

gdfstool auth -u
# Откройте ссылку в вашем браузере, пройдите авторизацию
# и скопируйте полученный ключ как <code>
gdfstool auth -a /var/.gdfs.creds "<code>"
mkdir /mnt/gdrivefs

Монтирование через /etc/fstab

Вы можете добавить следующую запись в /etc/fstab

echo "/var/.gdfs.creds /mnt/gdrivefs gdfs allow_other,big_writes 0 0" >> /etc/fstab
mount /mnt/gdrivefs

Но монтирование происходит до сетевого подключения сервера, а без сети вы не сможете подключить Google Drive, так что после перезагрузки сервера у вас возникнут проблемы с монтированием. Можете добавить опцию _netdev:

echo "/var/.gdfs.creds /mnt/gdrivefs gdfs allow_other,big_writes,_netdev 0 0" >> /etc/fstab
mount /mnt/gdrivefs

Но у меня не получилось использовать эту опцию:

fuse: unknown option `_netdev'

Монтирование через /etc/network/interfaces

Я монтирую диск следующим способом

echo "post-up /bin/mount /var/.gdfs.creds /mnt/gdrivefs -t gdfs -o allow_other,big_writes" >> /etc/network/interfaces

После перезагрузки сервера у вас запустится post-up и смонтирует диск.

Проверяем

Смонтируем вручную и посмотрим файлы:

mount /var/.gdfs.creds /mnt/gdrivefs -t gdfs -o allow_other,big_writes
ls -la /mnt/gdrivefs

Рекомендую перезагрузится и проверить что все работает.

Комментарии

Ну есть же шикарная тулза - https://rclone.org/

Можно конечно и костыли пилить постоянно, но все же зачем?

@dengolius спасибо, не знал про эту утилиту. Ротейт файлов есть? Ну и мне удобнее примонтировать и работать как с фс, чем оперировать командами этой утилиты.

Там конечно написано что есть "mount", но с пометкой "EXPERIMENTAL" и даже если работает, то надо будет проделать все тоже самое что и в моей статье, кроме интстала gdfs

Я использую davfs2 (WebDAV), тоже неплох.

Hey I would like some help getting this to work. My first error I have ran into is the command "sudo ln -s" and this is the error that comes from it. ln: missing file operand.

"Вход с аккаунтом Google временно заблокирован для этого приложения
В приложение нельзя войти, используя аккаунт Google, так как оно ещё не прошло нашу проверку."
у альтернатив, которые тут упоминали - нет таких проблем?

Оставьте свой комментарий

Markdown