А у нас новый сайт ----------------> www.ph-ph.ru!
Finar.ru
web.finar.ru
video.finar.ru
Темы для BootstrapNew!

Автоматизация бэкапа сайтов без базы данных

методика автоматизации бэкапов сайтов на базе wget для Windows

Многие сайты (например этот) работают без использования базы данных 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 - это не очень хорошая идея.

  1. во-первых, когда файлов сайта становится много тысяч, из-за ограничений протокола сильно раздувается служебная часть трафика;
  2. во-вторых, при FTP-передаче файлы могут теряться и ломаться, а высокая продолжительность процесса бэкапа увеличивает эту вероятность;
  3. в-третьих, некоторые хостинги имеют лимит на листинг файлов в одной директории;
  4. наконец, гораздо лучше сделать один архив на сервере, и его уже загрузить и удалить.

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




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


Ваше имя:
->