Как сделать бэкап

Простой и очень удобный скрипт бэкапа файлов на 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;

Comments

Leave a Reply




  • Recent Comments