Скрипт (спецсимволы в паролях экранировать):
#!/bin/bash
cd /var/www/backup/
#local
mysqldump --opt -udbuser -pdbpassword dbname | gzip -c -9 > site.ru.sql.gz
tar -czf site.ru.tar.gz ../site.ru
#gdrive
GDRIVE=/root/gdrive
for f in *.gz
do
$GDRIVE list | grep $f | awk '{print $1}' | xargs -I {} sh -c "$GDRIVE delete {}"
$GDRIVE upload $f
done
Более простой не универсальный вариант:
#!/bin/bash
#local
mysqldump --opt -udbuser -pdbpassword dbname | gzip -c -9 > /var/www/backup/site.ru.sql.gz
tar -czf /var/www/backup/site.ru.tar.gz /var/www/site.ru/
#gdrive
/root/gdrive list | grep site.ru.sql.gz | awk '{print $1}' | xargs -I {} sh -c '/root/gdrive delete {}'
/root/gdrive upload /var/www/backup/site.ru.sql.gz
/root/gdrive list | grep site.ru.tar.gz | awk '{print $1}' | xargs -I {} sh -c '/root/gdrive delete {}'
/root/gdrive upload /var/www/backup/site.ru.tar.gz
Информация о GDrive (установка и использование): https://github.com/prasmussen/gdrive
См. также: cron резервное копирование файлов и базы данных сайта с выгрузкой на удаленный ftp
Скрипт:
в пароле для mysql спецсимволы нужно экранировать, например \)
#!/bin/bash
tar -czf /var/www/backup/site.ru.tar.gz /var/www/site.ru/
mysqldump --opt -udbuser -pdbpassword dbname | gzip -c -9 > /var/www/backup/site.ru.sql.gz
lftp -c 'open -e "mput -O ftpdir/ /var/www/backup/*.gz " -u ftpuser,ftppassword ftpserver exit'
Задание cron (будет выполняться в 2:30 каждый день):
30 2 * * * /usr/bin/perl /var/www/backup/site.ru.sh >> /var/www/backup/site.ru.log 2>&1
https://www.frameworks.su/article/rezervnoe_kopirovanie_sayta_s_pomoshchyu_cron
См. также: Резервное копирование файлов и базы данных сайта с выгрузкой на Google Drive
В примере для открытия URL каждый день в час ночи.
0 1 * * * wget -O - http://site.com/cron.php >/dev/null 2>&1
Еще варианты:
http://stackoverflow.com/questions/13259530/using-cron-jobs-to-visit-url
Для автоматического запуска скрипта при загрузке системы в файле rc.local добавить:
internet start
Для переподключения в случае разрыва соединения в /etc/crontab
* * * * * root ping -c 1 gmail.com >> /var/log/internet/ping.log ||
internet restart >> /var/log/internet/restart.log
Каждую минуту будет выполнятся проверка на активность соединения и в случае его отсутствия выполняться переподключение.
Пример приведен с учетом того что
internet start
internet stop
internet restart
комманды подключения/отключения/переподключения к Интернет.