Wget + Cron. Пример использования
Wget - это свободная неинтерактивная программа для загрузки файлов с Интернет. Поддерживает протоколы HTTP,HTTPS и FTP. Поскольку она неинтерактивная, то многие ее используют в фоновом режиме.
Cron - планировщик, демон в unix-подобных системах, используется для периодического выполнения разных задач.
Есть сайт с большим количеством видео-файлов для скачивания. Но есть и условия скачивания:
1. Качать можно только по одному файлу за раз.
2. Для иностранных пользователей (вне РФ), время скачивания с 4 до 10 часов утра (московское время).
Первую проблему можно решить, используя Tor + Firefox.
Для решения второй, можно воспользоватся русским прокси. По ряду причин я этим пользоваться не хочу. Поэтому я хочу автоматизировать скачивание файлов wget-ом посредством cron.
Создаю у себя в домашней директории файл urls (название можно любое):
$ vi urls
и заношу в него urls файлов, которые я хочу качать (в моем случае, видео файлы)
http://***.net/film/lalala.cd1.avi
http://***.net/film/lalala.cd2.avi
http://***.net/film/lalala.cd3.avi
http://***.net/film/lalala.cd4.avi
(каждый новый url с новой строки).
Теперь создаю файл serhiy (название любое) и записываю в него действия для cron:
$vi serhiy
записываю
5 10 * * * /usr/bin/wget -c --directory-prefix=/home/serhiy --input-file=/home/serhiy/urls
Что значит начинать программу wget в 10 часов 5 минут, каждый день. Опция -с задает продолжение закачки недокачанного файла, --directory-prefix=/home/serhiy - место, куда записываем, --input-file=/home/serhiy/urls - файл с которого брать url's.
Создаем crontab файл.
$crontab serhiy
Все. Можно: проверить - командой crontab -l; редактировать - crontab -e; удалить crontab -r.
Очень полезно. Дал задание, через недельку в папке лежат все серии нужного фильма.
5 коммент.:
Интересно. Лично я чаще пользуюсь at, может быть просто потому, что лень читать man cron :-) Сейчас самая работа и делать это некогда, но на праздниках предамся этому сладостному делу :-)
Да, cron полезная штука. At меня не устраивал, с помощью at можно задать задание только одноразово, а мне надо чтобы оно каждый день работало без моего участия.
Mikhail Gusarov <87bqm0zijr.fsf@vertex.dottedmag.net> пишет:
MR> Если я запускаю wget в скрипте, как мне узнать на выходе -
MR> докачал он файл или нет?
Если докачал - 0 вернёт, если не докачал - не ноль. Я его обычно в
такой конструкции пускаю (из-за того, что он имеет отвратительную
привычку по получении 503 останавливаться):
while ! wget -t0 -c url; do :; done
никогда не использовал -t. Опыта мало. Возьму на заметку.
А вот мой способ объединения wget+cron (http://www.mysterya.org/2006/12/22/wget-cron/)
Отправить комментарий