PostgreSQL

Daily Backup

echo "Архивируем дамп"
dump=mydb_$(date +"%Y-%m-%d-%H-%M-%S")
local_dump=/opt/backup/$dump
#Предварительно подготовьте файл ~/.pgpass (https://www.postgresql.org/docs/9.3/libpq-pgpass.html)
pg_dump --verbose --host=127.0.0.1 --port=5432 -U mydb --format=c --no-privileges --no-owner --file $local_dump -n "public"
echo "Резервирование  завершено"

#Загрузка на SSH Сервер
sshserver_dir="/mnt/sshserver.kz"
umount /mnt/sshserver.kz
echo "connecting to sshserver"
#Один раз запустите вручную sshfs чтобы запросил ключи
if echo 'SSHPASSWORD' | sshfs -o password_stdin sshlogin@sshserver.kz:/ /mnt/sshserver.kz/; then
echo "ok"
else
echo "error on ssh connect sshserver"
exit
fi
mkdir $sshserver_dir/files/supervps.bapps.kz/mydb/ -p
echo "Архивируем ежедневный дамп в sshserver.kz supervps"
cp -f  $local_dump $sshserver_dir/files/supervps.bapps.kz/mydb/$dump
echo "Архив mydb выгружен в sshserver.kz supervps!"
find $sshserver_dir/files/supervps.bapps.kz/mydb/* -mtime +5 -type f -delete
echo "Удаление старых дампов mydb завершено supervps"
umount /mnt/sshserver.kz

#Загрузка на Гугл диск. Подробнее https://medium.com/@enthu.cutlet/how-to-mount-google-drive-on-linux-windows-systems-5ef4bff24288
echo "google drive"
google-drive-ocamlfuse /mnt/drive
cp -f  $local_dump /mnt/drive/backup/mydb/$dump
find /mnt/drive/backup/mydb/* -mtime +30 -type f -delete
fusermount -u /mnt/drive
rm -f $local_dump