Pada sistem operasi Linux, kita sudah tidak awam dengan yang namanya ‘wget’. Adapun fungsinya anda yang bergelut di mesin linux, dah pasti tau kegunaannya…saja jelaskan sedikit –walaupun baru belajar linux– tentang wget, yaitu software pada linux yang berfungsi sebagai downloader/download manager yang text based, mensupport protocol HTTP, HTTPS dan FTP. Software ini dapat anda dapatkan dengan tanpa biaya sedikitpun karena FREE! karena menganut GNU/GPL, jadi bebas untuk didistribusikan lagi.
Adapun, paketnya dapat anda dapatkan di gnu.org untuk paket source-nya. Untuk anda yang berjalan di bawah platform REDHAT, bisa dengan mencari paket RPM di rpmfind.net. Sebenarnya, wget sudah ada pada bawaan distro linux yang anda install…tetapi klo memang anda ingin pake yang terbaru, silahkan datang menuju link yang saya sebutkan sebelumnya.
Direktori kerja kita adalah di ~/download/mp3.
Disini kita akan memulai membuat script-nya dulu, kemudian script ini akan di jalankan oleh crontab.
Buatlah file dengan nama ’start-dl.sh’, gunakan editor ‘vi’ atau ‘nano’. Kemudian ketiklah
#!/bin/sh
case "$1" in
start)
URLFILE=$(cat url.file)
wget -c -b -T 0 -t 0 -o log -i $URLFILE &
ps -auxww | grep $URLFILE | grep -v grep | awk '{ print $2 }' > wget.pid
;;
stop)
kill 'cat ./wget.pid'
rm -f ./wget.pid
;;
*)
echo "Gunakan perintah : $0 {start|stop}"
esac
exit 0
Kemudian, save dan ‘chmod u+x start-dl.sh’ agar bisa di eksekusi.
Buatlah sebuah file biasa dengan nama ‘the-magic-finger-mp3.txt’, kemudian ketikan url file yang akan di download, misalnya ‘http://www.mp3.com/files/balawan/the-magic-finger.mp3′. Save.
Buatlan sebuah file biasa lagi dengan nama ‘url.file’, kemudian ketikan nama file yang menyimpan url yang tertulis diatas seperti ‘the-magic-finger-mp3.txt’. Save. Adapun fungsi dari file ‘url.file’ adalah menyimpan variable yang fungsinya akan dipanggil untuk membuat sebuat pid file. Adapun script yang memanggil variable tersebut seperti yang telah di tuliskan, yaitu :
URLFILE=$(cat url.file)
wget -c -b -T 0 -t 0 -o log -i $URLFILE &
ps -auxww | grep $URLFILE | grep -v grep | awk '{ print $2 }' > wget.pid
dan pada fungsi awk’{print $2}’ > wget.pid adalah mengambil karakter pada layar yang dimana print $2 adalah mencetak pada kolom ke 2, yaitu urutan process id yang sedang running, kemudian di simpan ke sebuah file yang bernama wget.pid, yang dimana file ini akan digunakan oleh crontab.
Kemudian , buat sebuah file dengan nama ‘cronwget.sh’, ketikan :
#!/bin/sh if test -r ./wget.pid; then WGETPID=$(cat ./wget.pid) if $(kill -CHLD $WGETPID >/dev/null) then exit 0 fi fi ./start-dl.sh start &>/dev/null
Chmod file ‘cronwget.sh’ menjadi ‘chmod u+x cronwget.sh’ agar bisa di eksekusi.
Kemudian, atur waktu crontab, pada saat 5 menit akan men-check proses wget tadi, jika proses masih running, lanjutkan download. Tetapi, jika proses download terhenti, jalankan kembali. Proses terhenti bisa karena ‘request time out’ atau komputer shutdown atau restart. Disini peran crontab di perlukan.
Sekarang, edit crontab dengan command : ‘crontab -e’, maka crontab akan meng-edit dengan editor ‘vi’. Kemudian isikan dengan :
5 * * * * cd ~/download/mp3;./cronwget.sh >/dev/null
kemudian, save!
Sampai disini, selesai. Tinggal tunggu 5 menit, crontab akan mengeksekusi cronwget tadi. Jika sudah lebih dari 5 menit, ketikan : ps -aux untuk memastikan apakah proses sudah running.
NOTE : Untuk nama file url seperti ‘the-magic-finger-mp3.txt’, jika anda me-running-kan beberapa download, sangat di sarankan/harus untuk pemberian nama file url berbeda. Hal ini sudah saya jelaskan seperti tertulis diatas.
Semoga bermanfaat!





eko 10:46 pm on 1 March 2009 Permalink |
Salam kenal pak,
mohon bantuannya pak…
saya masih nyoba masuk dicrontab untuk lakukan wget file zip tiap 3 jam. lalu di ekstrak di /var/www/html.
file zipnya dapet pak, tapi waktu mo diekstrak pake unzip koq ga bisa ya pak..??
di crontab saya masukkan.
3 * */3 * * root wget -c /http:172.19.1.1/indahku/peristiwa.zip > /var/www/html/
terimakasih pak
Abu Ja'far 11:41 am on 3 March 2009 Permalink |
mungkin file zip corrupt atau file zip tersebut terbentuk, tetapi bukan zip yang terdownload dengan benar.
mungkin bisa dicoba pake gini:
3 * */3 * * cd /var/www/html/; wget -c http://172.19.1.1/indahku/peristiwa.zip > /dev/null
maksud diatas: pindah ke direktori tujuan, kemudian download pada direktori tersebut.
semoga membantu dan terima kasih udah berkunjung.