wget + cron
Декабрь 22nd, 2006 by Captain Flint
На днях попалась на глаза статья Wget + Cron. Пример использования. Подумал и решил описать свой способ на ту же тему.
Есть каталог ~/downloads. В нем есть файл:
$ ls -l start-get.sh
-rwxr-xr-x 1 flint flint 172 2006-10-24 13:49 start-get.sh
$ cat start-get.sh
#!/bin/bash
wget_pid=`ps -C wget | grep wget | awk '{print $1}'`
if [[ "$wget_pid" == "" ]]; then
find /home/flint/download/ -name get.sh -exec '{}' ;
else
exit 0
fi
Для того, чтобы что-то слить, создаем, к примеру, каталог ~/download/system и кладем туда
$ ls -l get.sh
-rwxr--r-- 1 flint flint 206 2006-11-03 10:30 get.sh
$ cat get.sh
#!/bin/bash
#
URL1="http://download.nvidia.com/XFree86/Linux-x86_64/1.0-8776/NVIDIA-Linux-x86_64-1.0-8776-pkg2.run"
DIR1=$HOME/download/system/
LOG=$HOME/var/log/get.log
wget -c -P $DIR1 $URL1 -o $LOG
Соответственно, в кроне (crontab -e) указываем, к примеру, такое:
# m h dom mon dow command
* 1,3,5 * * * /home/flint/download/start-get.sh
Чем это отличается от простого запуска по крону?
Во-первых, можно насоздавать каталогов, там пораскидывать файлы get.sh с закачками, а в кроне надо поставить только один start-get.sh.
Во-вторых, если скрипт запускает повторно, он проверяет, если ли уже закачки и запускается только в том случае, если закачек нету. Лично я качаю в одно время один файл, мне так удобнее.
Ну, в общем, вот так.
MysteryA. Наша жизнь
Да. Прикольно. Но в моем случае я могу качать только один файл сразу, файл 700 метров, качает дня 4. Поэтому я не представляю зачем мне создавать дополнительные каталоги. На счет повторного запуска: -с - докачивает файлы, -t - в случае сбоев.
Если нужно в определенное время скачать много маленьких файлов с разных источников, тогда нужно использовать Ваш вариант.
Ну, у меня файл размером 700 метров выливается за ночь… Но этот способ, конечно, лучше, если надо вылить из инета последовательность файлов, небольших по размеру.