Актуальная версия статьи: Бэкап на Google Drive из консоли
Для работы со своим гуглдиском из командной строки потребуется установить пакет gdrive. Установка проста и описана на странице проекта, там же примеры работы с утилитой.
Далее полезные команды и скрипт для бэкапа.
Для того, чтобы залить файл на сервер, сначала нужно узнать ID директории, куда будет отправлен файл.
1 2 3 4 5 6 7 | # Плоский список всех директорий на диске gdrive list --query 'mimeType contains "folder"' # Id Name Type # 0B8ILkU3zQMQyM3BVeWVnZERILWs public dir # 0B8ILkU2zQMQy6W52UGpyNWhMdFE backup dir # 0B8ILkU1zQMQyQkZTOW9lZWViT2c tmp dir |
Команда отправки:
1 | gdrive upload --parent 0B8ILkU2zQMQy6W52UGpyNWhMdFE myfile |
Архивировать каталог и отправить на Гугл Диск
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #!/bin/bash # Вывод сообщения со стилями function print { echo echo -e "\e[38;5;82m $1" echo -e "\e[0m" } #======================================================================================= archive_name=MYDIRNAME-$(date +%Y-%m-%d.%H%M%S) src_path=. dir_id=0B8ILkUWzQMQyUHplbWloVF8zOEk # ID директории на гуглдиске # Или взять имя архива и путь сохранения из аргументов скрипта: # archive_name=$1-$(date +%Y-%m-%d.%H%M%S) # src_path=$2 # Архивировать каталог с паролем # -xr! игнорирует файлы по маске print "Compress..." 7z a -p'password' /tmp/${archive_name}.7z ${src_path} -xr!"*.log" -xr!"node_modules" # tar cfvj /tmp/${archive_name}.tar.bz2 ${src_path} ls -lh /tmp/${archive_name}.7z print "Upload..." gdrive upload --delete --parent ${dir_id} /tmp/${archive_name}.7z |
- Скрипт использует функцию
print
для более читаемого вывода сообщений. - В имя архива добавляется текущая дата.
- Используется архиватор
7zip
, как поддерживающий пароли. - Опция
--delete
дляgdrive
удаляет файл, который загружается на сервер.