Резервное копирование сайта с помощью cron

Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Поговорим о важной составляющей сайта - это резервное копирование. Существует огромное количество программ для резервного копирования, платных, бесплатных, но мы воспользуемся, самым простым и на мой взгляд надежным средством, это утилита cron, которая присутствует во всех дистрибутивах linux.

 Утилита cron может использовать как системный файл для указания заданий, который находится в /etc/crontab, так и пользовательский файл.

Разница между ними в том, что для системного файла нужно указывать от какого пользователя выполнять команду

 Расписание

Формат записи времени следующий:

минуты  часы   день_месяца  месяц  день_недели от_кого_выполнять  команда

 
Значение Диапазон чисел Дополнительно
минуты 0-59  
часы 0-23  
день_месяца 1-31  
месяц 1-12  
день_недели 0-6 0 - воскресенье 

 

Добавляем расписание

Лучше всего создать пользовательский файл от пользователя root (Пароль для root, создавайте надежный).

В директории root создаем файл следующего содержания. Например cronsite.

nano cronsite

# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $
# 1
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin 2
HOME=/var/log
#
#
#minute hour mday month wday  who    command 
#
#
00           23    *          *     0                sh /root/site_backup/backup.sh

Сохраняем.

Создаем папку для бэкапов.

mkdir site_backup
mkdir ~./site_backup/file
mkdir ~./site_backup/base

Подключаем созданный файл командой:

crontab /root/cronsite

Посмотреть готовое расписание можно командой

crontab -l

Редактировать расписание можно командой (редактор vi)

crontab -e 

Удалить текущее расписание командой

crontab -r

 

Скрипты для бэкапов

Создадим один скрипт для файлов и для базы данных.

touch backup.sh

Редактируем

nano backup.sh

#!/bin/bash

###################### FILE BACKUP ##################################

cd /root/site_backup/file
rm ./site-3.tar.gz
mv site-2.tar.gz site-3.tar.gz
mv site-1.tar.gz site-2.tar.gz
mv site-0.tar.gz site-1.tar.gz
tar -czf site-0.tar.gz /usr/local/www/apache24/data/

####################################################################

###################### BASE BACKUP #################################

cd /root/site_backup/base
rm ./site-3.gz
mv site-2.gz site-3.gz
mv site-1.gz site-2.gz
mv site-0.gz site-1.gz
mysqldump --opt -u max -pyoupassword site | gzip -c -9 > /root/site_backup/base/site-0.gz

####################################################################

В бэкапе баз строчка mysqldump ... записана верно. вместо youpassword вписываете Ваш пароль к базе данных. Пользователь базы данных должен обладать правами для работы с этой базой данных.

root пользователя вводить не рекомендуется, в целях безопасности.

 

Восстановление работы сайта

Чтобы восстановить файлы, можно просто распаковать архив и залить в директорию, где находятся файлы сайта. Чтобы восстановить базу введем команду:

gunzip < /root/site_backup/base/site-0.gz | mysql -u USER -pPASSWORD DATABASE

Перезапускаете apache и mysql

И все будет хорошо!)

Добавить комментарий