Многие сайты (например этот) работают без использования базы данных MySQL. В этом случае можно просто и удобно настроить их бэкапирование к себе на компьютер. Это может быть полезно не только из соображений безопасности, но и для того, чтобы нажатием одной кнопки создать локальную версию всего сайта у себя на машине. Впоследствии с ней можно делать что угодно - например взять с собой на дачу или в любой другой off-line.
Как всегда, я буду использовать только бесплатное ПО для платформы Windows.
Центральный инструмент всем известен и называется wget . Утилита позволяет загружать всякую всячину из Сети по HTTP, HTTPS и FTP протоколам. Консольные приложения хоть и сложны в настройке, зато всегда самые стабильные. Кроме того, CLI-интерфейс позволяет легко встроить бэкап сайта в мою существующую систему бэкапов, описанную в статье Параноидальный бэкап.
Обширная справка позволяет настроить wget как угодно, даже вырастить из него сетевого паука. Но я ограничился следующими директивами:
wget.exe ftp://finar.ru/* --no-host-directories --mirror --ftp-user=finar --ftp-password=***** -a X:\WEB\LOG_finarru.txt -P "X:\WEB\Finarru\%date:~6,4%-%date:~3,2%-%date:~0,2%" -c
Важные ключи:
- --mirror - создает точную копию сайта, сохраняя не только файлы сайта, но и даты их создания и модификации; а также служебные файлы FTP-сервера, о существовании которых я раньше и не подозревал;
- -a X:\WEB\LOG_finarru.txt - ведет лог операций;
- -P "X:\WEB\Finarru\%date:~6,4%-%date:~3,2%-%date:~0,2%" - складывает все файлы в папку с текущей датой.
Эта команда создает точную копию сайта в папке WEB\Finarru\ бэкапного винта моего сервера. Чтобы обеспечить большую надежность, сохранить место и уменьшить число файлов, добавим операцию архивирования. Вместо платного Winrar, давайте лучше использовать свободный 7-zip . Командная строка:
7za.exe a X:\WEB\Finarru\%date:~6,4%-%date:~3,2%-%date:~0,2% X:\WEB\Finarru\%date:~6,4%-%date:~3,2%-%date:~0,2%\*
просто архивирует созданную только что wget'ом папку. По желанию можно добавить информацию для восстановления и, вероятно, попросить 7-zip удалить исходник. Я вместо этого воспользовался встроенной командой Windows:
rd /S /Q X:\WEB\Finarru\%date:~6,4%-%date:~3,2%-%date:~0,2%
Все! Приведенные команды можно объединить в .bat файл, ежедневный запуск которого создаст вот такую мирную картину:
Ночь - лучшее время для бэкапа :) Можно запланировать бэкапирование в nnCron (у меня на нем построена вся система бэкапов), можно - во встроенном планировщике Windows. Можно просто оставить ярлык на рабочем столе, чтобы запускать вручную.
Update 2011: методика несколько устарела: копирование всех-всех файлов по FTP - это не очень хорошая идея.
- во-первых, когда файлов сайта становится много тысяч, из-за ограничений протокола сильно раздувается служебная часть трафика;
- во-вторых, при FTP-передаче файлы могут теряться и ломаться, а высокая продолжительность процесса бэкапа увеличивает эту вероятность;
- в-третьих, некоторые хостинги имеют лимит на листинг файлов в одной директории;
- наконец, гораздо лучше сделать один архив на сервере, и его уже загрузить и удалить.
Сейчас мы используем другой способ резервного копирования сайтов, но о нем расскажем в другой статье.
Оставить комментарий