Как сделать бэкап
Простой и очень удобный скрипт бэкапа файлов на sh.
Создаем командный файл, ставим ему права на выполнение(755) и добавляем задание в cron — бэкап готов!
Описание параметров:
backup_dir=/backup
Эта директория, куда кладем бэкам. Она может быть просто папкой, резервным диском или примонтированным разделом другого сервера.
backup_sites=/vhosts
То, что, собственно, будем сохранять. Например, это файлы сайтов на сервере.
backup_mysql=/var/lib/mysql
Еще одна директория для сохранения. В нашем случае это БД MYSQL со всеми потрохами.
num_of_backups=5
Количество дней, сколько хранить бэкапы.
#!/bin/sh
now_date=`/bin/date +"%Y%m%d"`
backup_dir=/backup
backup_sites=/vhosts
backup_mysql=/var/lib/mysql
num_of_backups=5
create_backup() {
/bin/tar Pzcf ${backup_dir}/${now_date}_sites.tgz ${backup_sites};
/bin/tar Pzcf ${backup_dir}/${now_date}_mysql.tgz ${backup_mysql};
}
check_backup() {
del_date=`/bin/date +"%Y%m%d" -d ${num_of_backups}' days ago'`;
check_date=`/bin/date +"%Y%m%d" -d '1 days ago'`;
if [ -e ${backup_dir}/${del_date}_sites.tgz ];
then
if [ -e ${backup_dir}/${check_date}_sites.tgz ];
then
/bin/rm -f ${backup_dir}/${del_date}_sites.tgz;
fi
fi
if [ -e ${backup_dir}/${del_date}_mysql.tgz ];
then
if [ -e ${backup_dir}/${check_date}_mysql.tgz ];
then
/bin/rm -f ${backup_dir}/${del_date}_mysql.tgz;
fi
fi
}
check_backup;
create_backup;