Analitycs

понедельник, 3 октября 2011 г.

Как бекапить проекты с помощью rsync, sshpass, scp?

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

Комментариев нет:

Отправить комментарий