Membuat script yang sanggup memonitor service Nginx atau Apache dan MySQL. Ketika salah satu service tersebut down maka script akan otomatis me-restart service tersebut biar sanggup ON kembali tanpa harus melaksanakan secara manual.
Script ini aku ambil dari sierracircle, MIT License. Cara kerja script ini adalah
- Memeriksa service Nginx/Apache, php-fpm dan MySQL atau lainnya, sanggup diatur
- Jika service tidak aktif, maka akan dicoba start kembali dan mengirimkan notifikasi ke email
- Jika gagal me-restart, maka akan mengirimkan email pemberitahuan, lalu exit
1. Buat file start_service.sh
nano start_service.sh
Isinya ibarat berikut, (ganti nama servicenya nginx atau apache, juga emailnya)
#!/bin/bash
##Path, OK untuk Ubuntu 14.04 and 16.04, update 18.x
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
##set email Anda
EMAIL="email@idnetter.com"
##daftar service yang ingin dicek, sebagai pola nginx sanggup diganti apache, php-fpm atau yang lain
SERVICES=( 'nginx' 'mysql' )
for i in "${SERVICES[@]}"
do
##Cek service
`pgrep $i >/dev/null 2>&1`
STATS=$(echo $?)
##Jika service tidak aktif
if [[ $STATS == 1 ]]
then
##restart service
service $i start
##cek restart berhasil atau gagal
`pgrep $i >/dev/null 2>&1`
RESTART=$(echo $?)
if [[ $RESTART == 0 ]]
##Jika restart berhasil
then
##hapus file di dalam /tmp kalau ada
if [ -f "/tmp/$i" ];
then
rm /tmp/$i
fi
##kirim email
MESSAGE="$i tidak aktif, tapi sudah berhasil diatasi (restart). Terjadi pada $(hostname) $(date) "
SUBJECT="$i tidak aktif telah berhasil direstart pada $(hostname) $(date) "
echo $MESSAGE | mail -s "$SUBJECT" "$EMAIL"
else
##Jika gagal restart
##cek kalau ada ile di /tmp
if [ ! -f "/tmp/$i" ]; then
##membuat file di /tmp (log)
touch /tmp/$i
##kirim email info buruk
MESSAGE="$i ketika ini down pada $(hostname) at $(date) "
SUBJECT=" $i down pada $(hostname) $(date) "
echo $MESSAGE " Script mencoba auto restart, tapi tidak berhasil, ini buruk, segera cek dan perbaiki" | mail -s "$SUBJECT" "$EMAIL"
fi
fi
fi
done
exit 0;
2. CHMOD
chmod biar sanggup dieksekusi
chmod +x start_service.sh
3. Install cron job
*/1 * * * * /root/start_service.sh
Sumber https://idnetter.com
Mari berteman dengan saya
Follow my Instagram _yudha58
0 Response to "Otomatis Restart Service Nginx, Apache Dan Mysql Kalau Down"
Posting Komentar