Все данные, хранящиеся на жестких дисках, флешках, и прочих носителях, всегда находятся под некоторой угрозой. Диск может сломаться, флешка исчезнуть, а владелец файлов (чаще всего) может их случайно удалить или испортить. Поэтому предлагаю немного поразмыслить о резервировании критически важных данных.
Начнём с сайта. Среднестатистический сайт — это набор файлов на диске и база данных, как правило — MySQL.
С базой данных особых проблем не вижу:
- для WordPress есть плагин WordPress Database Backup , который сохраняет базу по расписанию и отправляет её на e-mail
- для других систем можно воспользоваться скриптом Sypex Dumper , или настроить дамп и отправку по почте самостоятельно (несколько строк кода).
С сохранением файлов сайта чуть сложнее. Можно просто периодически сохранять их вручную, но можно и автоматизировать.
Сначала заархивируем все файлы сайта в один архив с помощью библиотеки PclZip :
<?php require_once('pclzip.lib.php');
$date = date('Y-m-d');
$archive = new PclZip("$date.zip");
$v_list = $archive->add('../');
if ($v_list == 0) { die("Error : ".$archive->errorInfo(true)); }
В этом примере $v_list — это относительный путь к архивируемому каталогу или список каталогов и фалов через запятую. Выбирайте сами, что именно нужно резервировать.
После этого можно сделать дамп MySQL базы и добавить его в этот архив, а потом, например, отправить полученный архив по почте с помощью класса PhpMailer и удалить его чтобы не занимал место. Запускать этот процесс можно с помощью планировщика у хостинг-провайдера (у Majordomo бесплатный) или (если это WordPress) с помощью WP-Cron .
Законченного решения я не выложил, но конструктор укомплектован — собирайте кому что нужно, все части надёжны и проверены.
Следующий эпизод — локальный компьютер. Тут стоит сразу определиться — что именно резервировать. Для больших и редко используемых файлов (фото, видео, архивы) я поставил себе под стол старенький компьютер под Ubuntu, настроил NFS и забыл о нём — приходя домой я получаю доступ к этим файлам, а в крайнем случае — можно и удалённо залезть.
А для регулярного бэкапа текущих проектов вполне подойдёт Gmail. Бесплатный почтовый ящик вмещает до 10Gb данных, а самый интересный фокус в том, что его можно подключить как обычный диск — как в Linux , так и под Windows . А сохранять туда нужные файлы тоже можно кроном, или его Windows-аналогом — nnCron + nnBackup .
А заодно посмотрим, что об этом думают другие участники конкурса на лучший способ бэкапа личных данных.
Жилинский Владимир.