GNU wget очень популярная качалка, и совсем не беспочвенно. Вы можете ее использовать просто для скачивания файлов с удаленных серверов, но программа намного мощнее и позволяет делать огромное количество разнообразных “полезностей”.

Одна из самых примечательных функций wget - это зеркалирование сайтов. Это позволяет создать вам полную локальную копию сайта, включая стили, картинки и прочее. Все (внутренние) ссылки будут скачаны и переадресованы на локальную копию (и все ресурсы).

Самый простой способ вызвать зеркалирование сайта с помощью wget:

1
$ wget -m <em>http://www.example.com/</em>

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

Во-первых, такой метод не очень удобен для локального просмотра сайта, так как ссылки на страницах локального зеркала все еще ведут на удаленные URLs а не на локальное зеркало. К примеру, вы зеркалируете http://www.example.com/, ссылка на главной странице ведущая на http://www.example.com/page2.html будет все равно ссылается на example.com сервер и приведет к странице ошибки если вы попытаетесь просмотреть локальный репозитарий в отсутствии интернета (по какой-либо причине).

Для решения этой проблемы используйте -k вместе с предыдущей строкой:

1
$ wget -mk <em>http://www.example.com/</em>

Теперь, ссылка о которой говорилось ранее будет указывать на соответствующую локальную копию страницы page2.html. То же самое происходит со всеми изображениями, stylesheets и ресурсами. Теперь локальное зеркала сайта будет полностью функционально даже при отсутствии интернет соединения (”Не дай Бог!”: прим. Homolibere).

Есть еще одно очень важное дело, которое мы тут не оговорили - нагрузка. Иногда, если не обращать внимание на нагрузку, полностью “положить” удаленный сервер или слишком сильно нагрузить его большой частотой запросов. Стоит заботится о том, чтобы не перегрузить сервер только для одного себя любимого. Надо быть вежливым, особенно к “маленьким” сайтам.

Если уж решили быть вежливыми, надо заставить вставлять промежутки таймаута между запросами. Делается при помощи опции -w

1
$ wget -mk -w 20 <em>http://www.example.com/</em>

Это усьтановит задержку в  20 секунд между запросами. Заменив число и по желанию добавив суффикс m для минут, h для часов и  d для … да, дней, если хотите замедлить зеркалирование настолько долго.

Вот и все. Теперь если вам надо сделать зеркало какого-то сайта или сделать его backup, вы можете это делать с помощью опций wget. Для более подробного ознакомления с возможностями wget читаем  man wget где есть много дополнительных функций, таких как случайная задержка, установки собственного useragent, отправки coockie на сайт и многое другое.

взято с FOSSwire переведено мной

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


Feedback Form