Резервное копирование
by Larin
Все знают о том, как важно резевное копирование данных. Важно не забывать копировать данные со своего сайта, т.к. и у крупных хостеров случаются аварии. А бэкап хостера не всегда спасает, поэтому каждый владелец сайта должен взять за правило: регулярно (в зависимости от частоты одновления сайта) создавать резервную копию всех данных своего сайта.
Занятие это не сложное, но нудное. Однако, его можно легко автоматизировать. Что нам понадобиться:
- Наличие на сервере планировщика Cron
- Небольшие знания команд Linux
- Желательно (но не обязательно) знание PHP
- и минут 15 времени =)
#!/bin/sh
time=$(date +%d_%m_%Y)
mkdir /home/larin/tmp_$time/
cd /home/larin/tmp_$time/
mysqldump –user=larin –password=****** database_name > backup_sql_$time.sql
tar -zcvf www_$time.tgz /var/www/your-site.ru > /dev/null
cd ..
tar -zcvf backup.tgz tmp_$time > /dev/null
rm -rf tmp_$time/
Таким не сложным скриптом мы создали архив содержащий musql-дамп БД и все файлы сайта.
Но файлы по прежнему на сервере… как нам их получить? Ответ очевиден: отправим себе на почту (многие используют почту от Google для хранения бэкапов).
В наш bash-скриптик добавим еще пару строк:
php sendbackup.php
rm backup.tgz
Затем берем любую библиотеку для отправки почты на PHP, например, Email with Attachment и на основе этой библиотеки делаем отправку файла на мыло:
Содержание файла sendbackup.php:
<?php
include(“sendmail.class.php”);
$mail = new sendmail();
$mail->SetCharSet(‘UTF-8′);
$mail->from(‘mailbot’, ‘mailbot@ваш_домен’);
$mail->to(‘адрес@вашего.ящика’);
$mail->subject(‘Резервная копия сайта от ‘ . date(‘d-m-Y’));
$mail->text(‘=)’);
$mail->attachment(‘backup.tgz’);
$mail->send();
?>
Вот и все, теперь ставим наш bash-скрипт на выполнение в Cron, например, 1 раз в неделю ([00 23 * * 7] – в 23:00 воскресенье) и спим спокойно, не боясь потерять данные.