Contoh kasus : kita membuat script untuk mengecek proses Shoutcast (sc_serv) apakah jalan atau tidak, bila proses tidak jalan, jalankan proses tersebut.

Salin script dibawah ini dan simpan sebagai otomatis.sh, dan letakkan di folder /home

#!/bin/bash
 
RESTART="./sc_serv"
PGREP="/usr/bin/pgrep"
PROSES="sc_serv"
 
$PGREP ${PROSES}
 
if [ $? -ne 0 ]
then
    cd /home/
    nohup $RESTART > log.log &
fi

diasumsikan file sc_serv yang anda miliki diletakkan di folder /home juga. Buat crontab baru dengan cara

crontab -e

tambahkan dibaris paling bawah

* * * * * /bin/bash /home/otomatis.sh

/bin/bash tersebut perlu, karena kadang bila mengakses langsung otomatis.sh melalui perintah /home/otomatis.sh script didalam otomatis.sh dijalankan tapi tidak tereksekusi. Troubleshooting nya juga menjadi susah.

Troubleshooting

Beberapa tips untuk troubleshooting Bash Script yang dijadwalkan dengan crontab :
– periksa apakah path script yang anda gunakan benar

ls -la /letak/file/bash/anda.sh

– periksa apakah script yang anda buat sudah benar-benar berjalan lancar dengan mengeksekusi langsung scriptnya

/bin/bash /letak/file/bash/anda.sh
## atau
/bin/sh /letak/file/bash/anda.sh

– jalankan bash dalam mode debug

/bin/bash -x /letak/file/bash/anda.sh
## atau
/bin/sh -x /letak/file/bash/anda.sh

– periksa proses crond (crontab daemon) apakah sudah dijalankan
contoh bila proses sudah berjalan

root      4473  0.0  0.1  19224   920 ?        Ss   15:23   0:00 /usr/sbin/cron

– untuk memudahkan testing, tambahkan dibaris paling bawah crontab (hasil dari crontab -e)

* * * * * touch /tmp/jalan.kok

cek file tersebut setiap 1 menit, kalau ada hapus dan tunggu satu menit kemudian, sambil mengecek proses dari bash script anda.

Join the Conversation

2 Comments

Your email address will not be published. Required fields are marked *