Sync Software

Yandex Disk Install

Настройка синхронизации Yandex Disk                                                                                                       

Предварительная настройка
mkdir -p ~/.sync/ya.disk
sudo sh -c 'echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" >> /etc/apt/sources.list.d/yandex-disk.list'
sudo sh -c 'wget http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG -O- | apt-key add'
sudo apt update    
Установка пакета yandex-disk
sudo apt install yandex-disk
yandex-disk setup
Would you like to use a proxy server? [y/N]: N
Enter path to Yandex.Disk folder (Leave empty to use default folder '/root/Yandex.Disk'): /home/user/yandex.disk/
Would you like Yandex.Disk to launch on startup? [Y/n]: Y
yandex-disk stop
Настройка папок исключения
sudo tee ~/.config/yandex-disk/config.cfg > /dev/null <<EOF
auth="/home/xeon/.config/yandex-disk/passwd"
dir="/opt/sync/ya.disk"
exclude-dirs="Backup,KX,Web.Cources"
proxy="no"
EOF
yandex-disk start

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
Монтирование папки 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