Skip to main content

Google Drive ocamlfuse

Установка google-drive-ocamlfuse -y                                                                

Github Repo

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