Консольный клиент для Linux
Пользователи user и postgres
Настройка:
$ mkdir -p /home/user/backup/yandex
$ wget http://repo.yandex.ru/yandex-disk/yandex-disk_latest_amd64.deb
$ sudo dpkg -i yandex-disk_latest_amd64.deb
#$ sudo dpkg -r yandex-disk # если нужно удалить
$ rm yandex-disk_latest_amd64.deb
$ yandex-disk setup
Использовать прокси-сервер? [y/N]:
Авторизация
Если у вас ещё нет аккаунта на Яндексе, его можно завести по ссылке https://passport.yandex.ru/passport?mode=register
Введите логин: user@yandex.ru
Введите пароль:
Токен сохранен в /home/user/.config/yandex-disk/passwd
Настройка Яндекс.Диска
Введите путь к папке Яндекс.Диска (Оставьте пустым для использования папки '/home/user/Yandex.Disk'): /home/user/backup/yandex
Запускать Яндекс.Диск при входе в систему? [Y/n]:
Запуск демона...Готово
Команды
#$ yandex-disk start
#$ yandex-disk stop
#$ yandex-disk status
$ sudo mkdir /backup
$ sudo chown -R postgres:postgres /backup
sudo nano /etc/postgresql/9.6/main/pg_hba.conf
Раскомментировать:
local replication postgres peer
host replication postgres 127.0.0.1/32 md5
Сохранить
$ sudo nano /etc/postgresql/9.6/main/postgresql.conf
Добавить:
max_replication_slots = 10
max_wal_senders = 10
wal_level = replica
Сохранить.
$ sudo systemctl restart postgresql
$ nano backup_yandex.sh
Вставить текст ниже:
#!/bin/sh
set -e
PASSWORD='AQwTDF95Jpwsunx93iZH'
DATA=`date +"%Y-%m-%d_%H-%M-%S"`
DIR_TMP='/backup'
DIR_BACKUP='/home/user/backup'
DIR_YANDEX='/home/user/backup/yandex'
#echo "--------------------------------------------------------------------" >> /home/user/backup/backup.log
# Записываем информацию в лог с секундами
echo "$DATA Start backup"
echo "$DATA Start backup" >> /home/user/backup/backup.log
sudo /bin/su postgres -c "rm -rf $DIR_TMP/*" && sudo /bin/su postgres -c "/usr/bin/pg_basebackup -D $DIR_TMP -Ft -z -Xf -P" && sudo mv $DIR_TMP/base.tar.gz $DIR_BACKUP/base-$DATA.tar.gz && sudo /bin/su user -c "openssl enc -aes-256-cbc -salt -in $DIR_BACKUP/base-$DATA.tar.gz -out $DIR_YANDEX/base-$DATA.tar.gz.enc -k $PASSWORD" && sudo /bin/su user -c "yandex-disk start"
#sudo /bin/su postgres -c "/usr/bin/vacuumdb -zfa" >> /home/user/backup/backup.log
#echo $?
DATA=`date +"%Y-%m-%d_%H-%M-%S"`
if [ $? -ne 0 ]
then
echo "$DATA Ошибка завершения для backup"
echo "$DATA Ошибка завершения для backup" >> /home/user/backup/backup.log
else
echo "$DATA Успешное завершение backup"
echo "$DATA Успешное завершение backup" >> /home/user/backup/backup.log
fi
echo "--------------------------------------------------------------------" >> /home/user/backup/backup.log
Сохранить.
Однократный запуск:
$ sudo sh backup_yandex.sh
Запуск по расписанию:
(Обратить внимание если сделать в конце дня, если компьютер выключается,
синхронизация может не завершиться)
$ sudo -i
# crontab -e
Добавить в конец (сработает в 17:00):
# каждые день в 17.00
Смотреть задания:
# crontab -l
Консольный клиент установлен от user
включить с утра можно так:
$ sudo -i
# crontab -e
Добавить в конец (сработает в 10:00):
# каждые день в 10.00
$ gunzip -t base-2019-02-14_20-00-12.tar.gz
Пользователи user и postgres
Настройка:
$ mkdir -p /home/user/backup/yandex
$ wget http://repo.yandex.ru/yandex-disk/yandex-disk_latest_amd64.deb
$ sudo dpkg -i yandex-disk_latest_amd64.deb
#$ sudo dpkg -r yandex-disk # если нужно удалить
$ rm yandex-disk_latest_amd64.deb
$ yandex-disk setup
Использовать прокси-сервер? [y/N]:
Авторизация
Если у вас ещё нет аккаунта на Яндексе, его можно завести по ссылке https://passport.yandex.ru/passport?mode=register
Введите логин: user@yandex.ru
Введите пароль:
Токен сохранен в /home/user/.config/yandex-disk/passwd
Настройка Яндекс.Диска
Введите путь к папке Яндекс.Диска (Оставьте пустым для использования папки '/home/user/Yandex.Disk'): /home/user/backup/yandex
Запускать Яндекс.Диск при входе в систему? [Y/n]:
Запуск демона...Готово
Команды
#$ yandex-disk start
#$ yandex-disk stop
#$ yandex-disk status
$ sudo mkdir /backup
$ sudo chown -R postgres:postgres /backup
sudo nano /etc/postgresql/9.6/main/pg_hba.conf
Раскомментировать:
local replication postgres peer
host replication postgres 127.0.0.1/32 md5
Сохранить
$ sudo nano /etc/postgresql/9.6/main/postgresql.conf
Добавить:
max_replication_slots = 10
max_wal_senders = 10
wal_level = replica
Сохранить.
$ sudo systemctl restart postgresql
$ nano backup_yandex.sh
Вставить текст ниже:
#!/bin/sh
set -e
PASSWORD='AQwTDF95Jpwsunx93iZH'
DATA=`date +"%Y-%m-%d_%H-%M-%S"`
DIR_TMP='/backup'
DIR_BACKUP='/home/user/backup'
DIR_YANDEX='/home/user/backup/yandex'
#echo "--------------------------------------------------------------------" >> /home/user/backup/backup.log
# Записываем информацию в лог с секундами
echo "$DATA Start backup"
echo "$DATA Start backup" >> /home/user/backup/backup.log
sudo /bin/su postgres -c "rm -rf $DIR_TMP/*" && sudo /bin/su postgres -c "/usr/bin/pg_basebackup -D $DIR_TMP -Ft -z -Xf -P" && sudo mv $DIR_TMP/base.tar.gz $DIR_BACKUP/base-$DATA.tar.gz && sudo /bin/su user -c "openssl enc -aes-256-cbc -salt -in $DIR_BACKUP/base-$DATA.tar.gz -out $DIR_YANDEX/base-$DATA.tar.gz.enc -k $PASSWORD" && sudo /bin/su user -c "yandex-disk start"
#sudo /bin/su postgres -c "/usr/bin/vacuumdb -zfa" >> /home/user/backup/backup.log
#echo $?
DATA=`date +"%Y-%m-%d_%H-%M-%S"`
if [ $? -ne 0 ]
then
echo "$DATA Ошибка завершения для backup"
echo "$DATA Ошибка завершения для backup" >> /home/user/backup/backup.log
else
echo "$DATA Успешное завершение backup"
echo "$DATA Успешное завершение backup" >> /home/user/backup/backup.log
fi
echo "--------------------------------------------------------------------" >> /home/user/backup/backup.log
Сохранить.
Однократный запуск:
$ sudo sh backup_yandex.sh
Запуск по расписанию:
(Обратить внимание если сделать в конце дня, если компьютер выключается,
синхронизация может не завершиться)
$ sudo -i
# crontab -e
Добавить в конец (сработает в 17:00):
# каждые день в 17.00
0 17 * * * sh /home/user/backup_yandex.sh Сохранить.
Смотреть задания:
# crontab -l
Консольный клиент установлен от user
включить с утра можно так:
$ sudo -i
# crontab -e
Добавить в конец (сработает в 10:00):
# каждые день в 10.00
0 10 * * * /bin/su user -c "yandex-disk start"
$ openssl enc -aes-256-cbc -d -in base-2019-02-14_20-00-12.tar.gz.enc -out base-2019-02-14_20-00-12.tar.gz -k AQwTDF95Jpwsunx93iZH
$ gunzip -t base-2019-02-14_20-00-12.tar.gz
Комментариев нет:
Отправить комментарий