Google Drive ocamlfuse
Установка google-drive-ocamlfuse -y
sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt install google-drive-ocamlfuse -y
Активация Google Drive API
- Переходим в библиотеку API
- Вводим в окно поиска
Google Drive API - Нажимаем на кнопку Включить
- Переходим на страницу настройки Google Drive API
- Нажмите Продолжить, затем Перейти к учетным данным
- На странице Создать учетные данные нажмите кнопку Отмена
- Перейдите на вкладку Окно запроса доступа OAuth
- Проверьте адрес электронной почты, введите своё название продукта и нажмите кнопку Сохранить
- Перейдите на вкладку Учетные данные, нажмите Создать учетные данные и выберите идентификатор клиента OAuth
- Выберите тип приложения Другие типы, введите имя
Drive API Quickstartи нажмите кнопку Создать - Нажмите кнопку ОК, чтобы закрыть диалоговое окно
- Нажмите кнопку в виде Карандаша справа в строке Drive API Quickstart
- Скопируйте Идентификатор клиента и Секрет клиента
- Доступ к уже созданным учетным данным Drive API Quickstart
Монтирование папки Google Drive
# Создание папки
mkdir ~/.sync/google.cloud
# Монтирование папки
google-drive-ocamlfuse ~/.sync/google.cloud
# Размонтирование папки
fusermount -u ~/.sync/google.cloud
Auto-Mount при Logon пользователя (Desktop OS)
sudo tee -a /home/<user>/.profile << 'EOF'
#Google Drive Mount
/usr/bin/google-drive-ocamlfuse "${HOME}/.sync/google.cloud"&
EOF
Настройка резервного копирования папки Google.Drive
Инициализация репозитория / Первая копия
touch /home/xeon/scripts/baсkup/initial_copy.sh
chmod -R ug=rwx,o=rx /home/xeon/scripts/baсkup/initial_copy.sh
sudo tee /home/xeon/scripts/baсkup/initial_copy.sh << 'EOF'
#!/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
EOF
СКРИПТ. Монтирование, Резервная копия, Чистка
sudo apt install p7zip-full -y
touch /home/xeon/scripts/baсkup/google.cloud.backup.sh
chmod -R ug=rwx,o=rx /home/xeon/scripts/baсkup/google.cloud.backup.sh
sudo tee /home/xeon/scripts/baсkup/google.cloud.backup.sh << 'EOF'
#!/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
EOF
Настройка планировщика 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/scripts/baсkup/google.cloud.backup.sh > /home/xeon/.sync/log.txt 2>&1