На днях мне в руки неожиданно попался 40 гиговый диск. Недолго думая, я приспособил его для бекапов, до которых все никак не доходили руки. Выкладываю скрипт для создания бекапов, может кому еще пригодится.
#!/bin/sh # Текущая дата DATE=`date "+%Y-%m-%d"` # Папка для бекапов BACKUP_DIR=/var/backups/manual # Удаляем все файлы старше семи дней find $BACKUP_DIR -type f -mtime +7 -delete # Архивируем папки /etc, /usr/local/etc и /var/db/ports /usr/bin/tar -Pzcf $BACKUP_DIR/etc_$DATE.tar.gz /etc /usr/local/etc /var/db/ports /var/named/etc/namedb > /dev/null # Архивируем вебсайт /usr/bin/tar -Pzcf $BACKUP_DIR/www_$DATE.tar.gz /usr/local/www > /dev/null # Архивируем базы данных /usr/local/bin/mysqldump --opt -Aau backup -pbackuppass | gzip -c > $BACKUP_DIR/sql_$DATE.sql.gz # Архивируем subversion /usr/local/bin/svnadmin dump -q /home/svn | gzip -c > $BACKUP_DIR/svn_$DATE.gz # Для всех папок в /home/hg создаем бандлы for i in `/usr/bin/find /home/hg/ -type d -depth 1` do /usr/local/bin/hg bundle -qa --cwd $i $BACKUP_DIR/hg/`basename $i`_$DATE.hg done |
HINT: Перед запуском создайте папки /var/backups/manual и /var/backups/manual/hg. Плюс к этому измените пользователя баз данных ‘backup’ на своего. Желательно /var/backups иметь на дополнительном диске, а еще лучше на другом сервере.