Merhaba,
Yakın bir zamanda karşılaştığım bir sorundur. Gerek saldırı yapılması ya da spesifik bir durum sebebiyle servisler durabiliyor. Bunun için yazdığım shell scripti paylaşacağım. Pgrep ile pid aratıyor eğer bulamazsa servisi yeniden başlatıyor. Basit bir yapı. Örnek için hem Apache hem Nginx için bu tanımı gerçekleştirdim.
Apache için:
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash RESTART="/sbin/service httpd restart" #Pgrep komut yolu PGREP="/usr/bin/pgrep" HTTPD="httpd" # Apache pid bulma $PGREP ${HTTPD} if [ $? -ne 0 ] # Apache calismiyorsa then # Apache restartla $RESTART fi |
Nginx için:
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash RESTART="/sbin/service nginx restart" #Pgrep komut yolu PGREP="/usr/bin/pgrep" HTTPD="nginx" # Nginx pid bulma $PGREP ${NGINX} if [ $? -ne 0 ] # Nginx calismiyorsa then # Nginx restartla $RESTART fi |
Aslında her şey için kullanabilirsiniz. MySQL olur, Postfix olur..
Eğer crontab’a aşağıdaki satırı eklerseniz 5 dakikada bir çalışacaktır.
1 |
*/5 * * * * /usr/bin/servis.sh >/dev/null 2>&1 |