Случалось полностью потерять все данные сайта? Актуальные версии файлов, бекапы, бекапы бекапов (вы ведь их делаете, да?)… Полная потеря данных, конечно же явление редкое, но и такое у людей происходит. В такие моменты серьёзно выручает возможность оперативно восстановить хоть что-то, что бы вернуть ресурс в работу. Одним из мест откуда можно быстро восстановить данные является веб-архив. А для него есть wayback machine downloader — отличная утилита, которая может быть установлена в том числе и на сервер.
1. Для установки нам потребуется ruby (команда в зависимости от дистрибутива):
yum install ruby dnf install ruby apt-get install ruby
2. Ставим саму утилиту. Установка не требует прав суперпользователя, так как это один из гемов ruby:
gem install wayback_machine_downloader
3. Скачиваем нужный нам сайт:
mkdir ~/sites/ cd ~/sites/ wayback_machine_downloader http://supersite.com
Собственно, всё. Скачанные файлы будут доступны в ~/sites/websites/supersite.com/
У утилиты есть несколько параметров, которые могут помочь при скачивании ресурса:
Параметрами -f (--from)
и -t (--to)
можно указать первый и последний таймштампы в рамках которых будут скачаны файлы. Таймштамп можно взять из URL при просмотре веб-архива.
Параметр -o (--only)
позволит указать фильтр, и при скачивании будут сохранены только те страницы, где вхождение заданное в фильтре используется.
Параметр -x (--exclude)
задаёт исключения. Совпадающие с указанным здесь вхождением адреса не будут скачаны.
Дальнейшая обработка скачанного завивит от задач. Можно сразу же скопировать данные в директорию для файлов сайта, можно внести необходимые изменения в файлы, например, с помощью sed…
Сделаем бекап текущего состояния:
cd ~/sites/websites/ cp -arvp supersite.com supersite.com.backup
Переносим сайт с http на https:
cd ~/sites/websites/supersite.com find ./ -type f -iname '*.html' -exec sed -i 's/http:/https:/g' {} \;
Удаляем код гугл-аналитики (осторожно, код может измениться и инструкция не сработает корректно, напишите в комментарии если так произошло, рассмотрим ваш случай):
cd ~/sites/websites/supersite.com find ./ -type f -iname '*.html' -exec sed -i '/var _gaq/,/)()/d' {} \; find ./ -type f -iname '*.html' -exec sed -i '/google_ad_client/,/pagead\/show_ads.js/d' {} \;
Удалем код Liveinternet:
cd ~/sites/websites/supersite.com find ./ -type f -name '*.html' -exec sed -i '/<!--LiveInternet counter-->/,/<!--\/LiveInternet-->/d' {} \;
В общем, с помощью sed можно сделать практически всё что угодно — удалить, модифицировать, вставить нужную информацию. Разумеется, так как утилита вызывается из командной строки, её без проблем можно использовать в скриптах.
Пример восстановленного сайта — nokia-faq.ru (был выбран случайно, исключительно из академического интереса тогда). Весь процесс — скачиваем, обрабатываем sed’ом, очищаем лишнее — занял у меня примерно 30 минут, так что в слуаях когда потеряно всё, а восстановить доступность ресурса нужно быстро и хоть как-то, утилитой wayback machine downloader стоит попробовать воспользоваться.
Могли бы помочь? Скачал сайт с помощью этой утилиты. Всё прекрасно. А как можно теперь запустить этот скачанный сайт локально, чтоб всё работало на локальной машине, а не обращалось при переходе по ссылкам во внешний мир и — естественно — ничего толком не работает.
Можно ли так сделать? Апач есть. Что и как нужно сделать, чтоб можно просматривать сайт локально?
Спасибо.