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

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

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

 Расписание

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

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

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

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

учше всего создать пользовательский файл от пользователя 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

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

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

Добавить комментарий для Александр Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *