Но мне это не подходит, так как есть скрипт, который выполняется по расписанию, и в нем я решил проверять файлы по дате создания и не плодить миллион архивов, а для этого нужно смонтировать Google Drive в папку.
Утилита от Google умеет только закачивать и скачивать файлы, проверить по дате и удалить все старше 3х дней не получилось.
Спасение нашлось в google-drive-ocamlfuse, статей на эту тему не мало, но есть одно, но, утилита требует GUI интерфейс, а в частности любой браузер. В браузер передается с генерированная ссылка.
Google как известно авторизует пользователей по OAuth. В моем VPS естественно не о каком GUI речь не идет, только консоль.
На помощь пришла статья с github Headless Usage & Authorization. Предлагаю вам мой вольный перевод.
1. Устанавливаем по инструкции google-drive-ocamlfuse
2. Входим в свой google accaunt. Переходим на страницу https://code.google.com/apis/console/ и создаем Новый проект в верхнем левом углу (Project > Create project).
3. В левой панельке ищем Библиотеки-Drive API (Library > Drive API) и включаем её (Enable).
4. Дальше переходим на Учетные данные (Credentials). Создаем нового пользователя Create credentials > OAuth client ID. Выбираем Other в предложенных вариантах. Получаем ID и секретный ключ.
5. Возвращаемся в консоль и пишем:
google-drive-ocamlfuse -headless -label me -id ##yourClientID##.apps.googleusercontent.com -secret ###yoursecret#####
6. Получаем сообщение в котором есть ссылка:
Please, open the following URL in a web browser: https://accounts.google.com/o/oauth2/auth?client_id=##yourClientID##.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&response_type=code&access_type=offline&approval_prompt=force
Копируем ссылку в браузер и получаем код верификации.
7. Копируем полученный код верификации и вставляем его обратно:
Please enter the verification code: hfal8as8dyv7f79asdf7g7gd7s9d7fy7dfy7dgfydb
8. Вот и все.
После этого будет создана папка с приложением (~/.gdfuse/me/), его мы и будем использовать для монтирование нашего диска. Монтируем в папку:
mkdir /my_mnt_dir
./google-drive-ocamlfuse -label me /my_mnt_dir
Размонтируем папку:
fusermount -u mountpoint
В оригинальной инструкции описаны действия которые нужно сделать при возникновении ошибок, но у меня все получилось с первого раза.
Комментарии (8)
lightvik
06.10.2016 20:23А почему не рассмотрели вариант yandex disk и webdav? Хотя по моему мнению у них и клиент для linux поумнее будет.
vmspike
07.10.2016 16:53По моему опыту Яндекс.Диск c webdav гораздо медленнее, чем Google.Drive через ocamlfuse. И места у них по-умолчанию на 5Гб меньше (если сейчас ничего не изменилось).
Кстати, любители халявы могут попробовать объединить несколько аккаунтов в массив с помощью mhddfs/unionfs/aufs, на Хабре уже есть соответствующие статьи.
LeshaRB
06.10.2016 20:23Была такая задачка под виндой, синхронизировать работу между домом и работой.
Нашел программку GoodSync. Там была синхронизация по времени изменений итд
evgenybuckharev
06.10.2016 20:23+1Использую Яндекс.Диск для резервных копий, ставлю на выполнение крон задачу несколько раз в сутки со следующим кодом:
#!/bin/bash TIME=`date +%Y-%m-%d-%H-%M-%S` SERVER_NAME="SERVER_NAME" MYSQL_FILE=/tmp/$SERVER_NAME-mysql.$TIME.sql.gz FS_FILE=/tmp/$SERVER_NAME-fs.$TIME.tar.gz # Archiving databases mysqldump -u MYSQL_USER --password=MYSQL_USER_PASS MYSQL_DB | gzip > $MYSQL_FILE if [ -f $MYSQL_FILE ]; then echo $TIME" db dump created" # Uploading to the cloud curl --user YA_USER@yandex.ru:YA_PASS -T "{$MYSQL_FILE}" https://webdav.yandex.ru/backup/database/ #Delete archve rm $MYSQL_FILE fi # Archiving filesystem tar czfP $FS_FILE /var/www/SITE_PATH if [ -f $FS_FILE ]; then echo $TIME" fs achive created" # Uploading to the cloud curl --user YA_USER@yandex.ru:YA_PASS -T "{$FS_FILE}" https://webdav.yandex.ru/backup/files/ #Delete archve rm $FS_FILE fi
Zeroxzed
06.10.2016 20:23Можно для тех же целей Яндекс.Диск использовать. Он без проблем монтируется по webdav как локальная папка. Для небольших бесплатных объемов работает вполне сносно, бэкапы копируются и подчищаются. Если покупать много места, то webdav не подходит, тормозит и зависает.
LeamasRein
07.10.2016 10:14Хорошее решение для архивации малого калибра, но помимо корпорации добра, рекомендую попробовать яндекс диск для подобных целей. Порог вхождения ниже, а гибкость настройки больше. Из объективных минусов — бесплатного сыра здесь только 10 ГБ,
Дружит с Ubuntu, Debian, Fedora, Red Hat, Centos. Существуют версии i386, x86, x64, x86_64. Консольную утилиту можно ставить из deb-файла, через apt-get (надо указать репозиторий) или RPM.
Настраивать можно через визард (yandex-disk setup) консольной утилиты или просто редактированием конфигурации. Может работать как в режиме постоянной синхронизации через демон, так и просто выполнить синхронизацию по команде (yandex-disk sync). Можно указывать что синхронизовать, либо что не трогать, разрешить/запретить перезапись и т.п.
Базовая настройка резервного копирования с момента коннекта по ssh займет минуты 2-3.
Еще умеет работать с webdav, что в сочетании с парой утилит позволяет создать кластер из дисков, объединенный в одно дисковое пространство. Но нюансов там не мало, так что это совсем другая история.
saggid
Мы у себя Backblaze используем для хранения бекапов. Стоит недорого, и позволяет загружать файлы в облако с помощью их утилиты командной строки.
Можно даже изловчиться и написать код, который будет удалять устаревшие бекапы из облака. У нас используется вот такой код на PHP для этого:
Ещё есть Ruby Backup Gem, который много чего умеет и поддерживает различные виды хранилищ. Единственное, почему мы его на заюзали — потому что он с B2 пока не дружит.