Как известно, "админы делятся на две категории - те кто не делает 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