воскресенье, 17 октября 2010 г.

Резервное копирование файлов сайта

Сегодня занимался реализацией резервного копирования для небольшого сайта.
Здесь напишу, что я делал.
Итак, сайт хостится на сервере Debian. Для создания резервной копии файлов сайта использую стандартную для всех дистрибутивов *nix утилиту tar, а для получения дампов базы - mysqldump.
Хранить бэкапы будем на удаленном сервере dropbox.com.


Синтаксис комманды:
#Dump winograd/*
tar -czpf /home/svv/backup/winograd-`date '+%d-%m-%Y'`.tar.gz \
/storage/www/hosted/winograd --exclude=_old --exclude=ala

#backup yoursitename.org.ua DB
mysqldump -u vovs -pPASSWORD_HERE vovs_school > \
 /home/svv/backup/dump-win-`date '+%d-%m-%Y'`.sql

#backup yoursitename.org.ua/forum DB
mysqldump -u vovs -pPASSWORD_HERE vovs_forum > \
 /home/svv/backup/dump-forum-`date '+%d-%m-%Y'`.sql
По ключам:
- создаем архивный файл;
-z - сжимаем с помощью gzip
-p - в архивных файлах сохраняются все настройки прав
-f - на выходе получим файл.
Опция --exclude указывает какие директории следует исключить из архива

Синтаксис mysqldump не должен вызвать вопросов. Указываем имя пользователя, который имеет доступ к базе и пароль. Потом название базы и направляем поток в файл.

Следующим этапом будем пересылка файлов на другой сервер. В качестве другого сервера был выбран сервис, предоставляемый на сайте www.dropbox.com. Зарегистрировавшись на этом сайте  Вы получаете 2 Гб места для хранения своих файлов. Для взаимодействия с виртуальным хранилищем предлагается скачать клиент для MS Windows. Пользователи *nix могут подключить DropBox как файловую систему. Ну и конечно доступ есть из любомого места, где есть Интернет.
Чтобы отправить вновь созданные файлы в хранилище на DropBox необходимо скачать скрипт BASH Dropbox Uploader, который и делает это:
/home/svv/scripts/drpbx_upload.sh \
/home/svv/backup/winograd-`date '+%d-%m-%Y'`.tar.gz winograd_backups
/home/svv/scripts/drpbx_upload.sh \
/home/svv/backup/dump-win-`date '+%d-%m-%Y'`.sql winograd_backups
/home/svv/scripts/drpbx_upload.sh \
/home/svv/backup/dump-forum-`date '+%d-%m-%Y'`.sql winograd_backups
Скрипт принимает два параметра. Первый - это имя файла, второй - это папка на DropBox'е.
После удачной пересылки данных можно удалить старые копии резервных файлов.
Я решил удалять файлы, к которым не обращались последние 100 дней, что примерно равно 3 месяца:
find /home/svv/backup/ -atime +100 -delete

И для окончательной автоматизации процесса резервного копирования файлов сайта все эти комманды были собраны в одном файле, который запускается по расписанию. Я делаю бекап 10 и 25 числа каждого месяца. Для этого в файле /etc/crontab я добавил строчку:
15 4 10,25 * * root     /home/svv/scripts/backup_vovs.sh
Запускать скрипт в 4:15 каждого 10 и 25 числа от имени пользователя root.

Комментариев нет:

Отправить комментарий