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.
Last Updated on 13 September 2017 by tommy
Punya saya selalu keluar
syntax error near unexpected token `fi’
Kenapa ya?
hapus spasi sebelum
fi
, atau coba ulang copas script diatas.