Поговорим о важной составляющей сайта — это резервное копирование. Существует огромное количество программ для резервного копирования, платных, бесплатных, но мы воспользуемся, самым простым и на мой взгляд надежным средством, это утилита 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.sql
mv site-2.sql site-3.sql
mv site-1.sql site-2.sql
mv site-0.sql site-1.sql
mysqldump --opt -u admin -pyoupassword base_name > /root/site_backup/base/site-0.sql
####################################################################
Делаем скрипт исполняемым
chmod +x backup.sh
В бэкапе баз строчка mysqldump … записана верно. вместо youpassword вписываете Ваш пароль к базе данных. site — имя Вашей базы данных. Пользователь базы данных должен обладать правами для работы с этой базой данных.
root пользователя вводить не рекомендуется, в целях безопасности.
Восстановление работы сайта
Чтобы восстановить файлы, можно просто распаковать архив и залить в директорию, где находятся файлы сайта. Чтобы восстановить базу введем команду:
mysql -u USER -pPASSWORD DATABASE < /root/site_backup/base/site-0.sql
Перезапускаете apache и mysql
И все будет хорошо!)
Отличная статья