echo $(date) [$service] >> $log

 

Bu satırda siz zaten köşeli parantez içinde $1 değişkeninin değerini yazdırmayı 
söylemişsiniz betiğe.

 

Şöyle yaparsanız daha anlamlı olur. Betikteki  “service $service status” 
satırını kaldırıp echo satırını da şu şekilde düzenleyiniz

 

echo $(date) $(service $service status) >> $log

 

From: [email protected] 
[mailto:[email protected]] On Behalf Of Özgür Kılıçaslan
Sent: Thursday, May 16, 2013 12:44 PM
To: linux-sunucu
Subject: [Linux-sunucu] service - ubuntu - yanlış alarm

 

Ubuntu 12.04 LTS sunucu üzerinde çalıştırdığım şöyle bash script var:
******************************************************************
#!/bin/bash

service=$1
log=/var/log/scrt.log

service $service status

if [ $? -ne 0 ]; then
        service $service restart
        echo $(date) [$service] >> $log
        exit 0
fi
******************************************************************

crontab düzenlemesi de şu şekilde:
******************************************************************
*/5 * * * * scrt mysql
*/5 * * * * scrt clamav-daemon
*/5 * * * * scrt apache2
*/5 * * * * scrt bind9
*/5 * * * * scrt ssh
*/5 * * * * scrt postfix
*/5 * * * * scrt fail2ban
*/5 * * * * scrt dovecot


******************************************************************

/var/log/scrt.log çıktısı şöyle oluyor:
******************************************************************
Thu May 16 12:00:02 EEST 2013 [mysql]
Thu May 16 12:00:02 EEST 2013 [dovecot]
Thu May 16 12:00:02 EEST 2013 [ssh]
Thu May 16 12:05:02 EEST 2013 [ssh]
Thu May 16 12:05:02 EEST 2013 [mysql]
Thu May 16 12:05:03 EEST 2013 [dovecot]
Thu May 16 12:10:01 EEST 2013 [mysql]
Thu May 16 12:10:02 EEST 2013 [dovecot]
Thu May 16 12:10:02 EEST 2013 [ssh]
Thu May 16 12:15:01 EEST 2013 [mysql]
Thu May 16 12:15:02 EEST 2013 [ssh]
Thu May 16 12:15:02 EEST 2013 [dovecot]
Thu May 16 12:20:02 EEST 2013 [ssh]
Thu May 16 12:20:02 EEST 2013 [mysql]
Thu May 16 12:20:02 EEST 2013 [dovecot]
Thu May 16 12:25:02 EEST 2013 [mysql]
Thu May 16 12:25:02 EEST 2013 [ssh]
Thu May 16 12:25:03 EEST 2013 [dovecot]
Thu May 16 12:30:02 EEST 2013 [ssh]
Thu May 16 12:30:02 EEST 2013 [mysql]
Thu May 16 12:30:02 EEST 2013 [dovecot]
******************************************************************

# service mysql status
# service ssh status
# service dovecot status

Bu üçünden sonra da

# echo $?
0

çıktısı veriyor. Scriptte bir yanlış mı var acaba?

-- 
Görünenler, gerçek olsaydı bilime gerek kalmazdı. 

_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]

Liste kurallarını http://liste.linux.org.tr/kurallar.php  bağlantısından 
okuyabilirsiniz;

Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen 
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu

Cevap