Как известно, "админы делятся на две категории - те кто не делает backup, и те, кто его УЖЕ делает". (с)
Ежедневный бэкап
Как кому удобно - я делаю
mysqldump базы на продакшене и потом rsync синхронизирую httpdocs и дамп на удаленную машину. Для авторизации - используются ключи.
#!/bin/bash
DESTINATION=/var/www/vhosts/xxx/httpdocs
KEY="ssh -i /home/user/.ssh/scm_dsa -l xxx"
ORIG_HOST=user@xxxx
rsync -a -e "$KEY" --delete --exclude="${DESTINATION}/cache/*" $ORIG_HOST:${DESTINATION}/* ${DESTINATION}/
Недельный бэкап
Уже на удаленной машине архивирую засинхронизированную папку несколько раз и через несколько дней заливаю архив на backup-space. К сожалению, доступ в backup-машинам - только по ftp, поэтому приходится немного извращаться, используя для авторизации
sshpass.
#!/bin/bash
VHOSTS_DIR=/var/www/vhosts
TMP_DIR=/mnt/backup
BACKUP_DIR=FTP_USER@XXXXX.XXX.XX:/
/usr/local/bin/sshpass -pFTP_PASSWORD scp ${TMP_DIR}/* ${BACKUP_DIR}scp -Cp ${TMP_DIR}/* ${BACKUP_DIR}
/etc/crontab
Да, разумеется - лучше всего делать эти процедуры тогда, когда народу на сайтах поменьше.
0 3 * * * root /home/user/bin/backup.sh >> /home/user/logs/backup.log
7 1 * * 0 root /home/user/bin/backup_weekly.sh >> /home/user/logs/backup_weekly.log