Установка Python 3.7 [Опционально]
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.7
Установка Google Client Library
sudo apt install python3-pip
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt install google-drive-ocamlfuse
Переходим в библиотеку API
Вводим в окно поиска Google Drive API
Нажимаем на кнопку Включить
Переходим на страницу настройки Google Drive API
Нажмите Продолжить, затем Перейти к учетным данным
На странице Создать учетные данные нажмите кнопку Отмена
Перейдите на вкладку Окно запроса доступа OAuth
Проверьте адрес электронной почты, введите своё название продукта и нажмите кнопку Сохранить
Перейдите на вкладку Учетные данные, нажмите кнопку Создать учетные данные и выберите идентификатор клиента OAuth
Выберите тип приложения Другие типы, введите имя Drive API Quickstart
и нажмите кнопку Создать
Нажмите кнопку ОК, чтобы закрыть диалоговое окно
Нажмите кнопку в виде Карандаша справа в строке Drive API Quickstart
Скопируйте Идентификатор клиента и Секрет клиента
Доступ к уже созданным учетным данным Drive API Quickstart
mkdir ~/.sync/google.cloud
Первичное монтирование папки
google-drive-ocamlfuse ~/.sync/google.cloud -headless
-id <Идентификатор клиента>
-secret <Секрет клиента>
Размонтирование папки
fusermount -u ~/.sync/google.cloud
Обычное монтирование папки
google-drive-ocamlfuse ~/.sync/google.cloud
Авто-монтирование папки при входе пользователя (для desktop)
vim /home/<user>/.profile
###
#Google Drive Mount
/usr/bin/google-drive-ocamlfuse "${HOME}/.sync/google.cloud"&
Инициализация репозитория / Первая копия
touch /home/xeon/my_scripts/baсkup/initial_copy.sh
chmod -R ug=rwx,o=rx /home/xeon/my_scripts/baсkup/initial_copy.sh
vim /home/xeon/myscripts/baсkup/initial_copy.sh
#!/bin/bash
google-drive-ocamlfuse /home/xeon/.sync/google.cloud -headless
cd /home/xeon/.sync/google.cloud
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/github_rsa
echo 'IdentityFile ~/.ssh/github_rsa' >> ~/.ssh/config
ssh -T git@github.com
git init
git config --global user.email "xeonmp44@gmail.com"
git config --global user.name "Yuriy Polyakov"
git config ssh.postBuffer 524288000
git add .
git commit -m "Gdrive Full Copy"
git branch -M main
git remote add origin git@github.com:shions/gdrive_backup.git
git push -u origin main
Установка архиватора 7zip
sudo apt install p7zip-full
СКРИПТ. Монтирование, Резервная копия, Чистка
touch /home/xeon/my_scripts/baсkup/google.cloud.backup.sh
chmod -R ug=rwx,o=rx /home/xeon/my_scripts/baсkup/google.cloud.backup.sh
vim /home/xeon/my_scripts/baсkup/google.cloud.backup.sh
#!/bin/bash
# Монтирование папки Google Диск
cd
if [[ -f "/home/xeon/.sync/google.cloud" ]]
then
fusermount -u /home/xeon/.sync/google.cloud
fi
sleep 5
google-drive-ocamlfuse -cc
google-drive-ocamlfuse /home/xeon/.sync/google.cloud -headless
sleep 5
cd
# Добавление изменений/Коммит/Отправка в репозиторий
cd /home/xeon/.sync/google.cloud
sleep 5
git add .
sleep 5
git commit -m "Updated: `date +'%Y-%m-%d %H:%M:%S'`"
sleep 5
git push -u origin main
sleep 5
# Размонтирование папки Google Диск
cd
fusermount -u /home/xeon/.sync/google.cloud
Настройка планировщика CRON
crontab -e
# Механизм работы системы CRON
# ------------------------------------------------------------
# * * * * * {пользователь} выполняемая_команда
# - - - - -
# | | | | |
# | | | | ----- День недели (0-7) (Воскресенье =0 или =7 ','- несколько)
# | | | ------- Месяц (1-12) (можно три буквы из названия месяца,
# | | | регистр не имеет значения от jan до dec)
# | | --------- День (1-31)
# | ----------- Час (0-23)
# ------------- Минута (0-59)
# ------------------------------------------------------------
#Запуск каждые Пн,Ср,Пт в 06:00 утра
00 06 * * 1,3,5 /home/xeon/my_scripts/baсkup/google.cloud.backup.sh > /home/xeon/.sync/log.txt 2>&1