2015-08-24 23 views
0

我有一個shell腳本每分鐘檢查端口狀態。如果端口狀態爲關閉狀態,則會發送郵件。但是,這將每分鐘發送一次電子郵件,直到端口再次啓動。但是我想在發送第一封郵件30分鐘後發送電子郵件。我怎樣才能做到這一點?我從shell腳本中調用PHP文件來發送郵件。檢查端口狀態和發送電子郵件

nc -v -z -w 10 192.168.50.34 5038; 

output=$? 
# echo $output 
php=`which php` 

dt=`date`; 


$php send_ast_status.php $output $dt 


if [ $output == "0" ]; 
then 

# echo 'asterisk is running' 
    /etc/init.d/asterisk 'stop' 

else 
#  echo 'asterisk not running' 
     /etc/init.d/asterisk 'start' 

fi 
+0

商店的最後一封電子郵件的數據庫發送時間/立案? –

+0

您需要將最後一次檢查的狀態保存在某個地方,數據庫或簡單文件中。只有利用這些信息,您才能決定是否發生變更。 – arkascha

+0

例如使用sendmail文件將時間戳放入它,然後檢查它 – donald123

回答

0

鍵入以下命令:telnet example.com 25查看結果:

如果端口25不堵塞,你會得到一個成功的220消息(文本可能會有所不同)。

嘗試64.13.192.208 ...連接到example.com。

轉義字符是'^]'。 220 cl34.gs01.gridserver.com ESMTP Exim 4.63星期二,2008年6月24日星期二13:45:04 -0700

如果端口25被阻塞,您將收到連接錯誤或根本沒有響應。

試圖64.13.192.208 ...遠程登錄:連接地址64.13.192.208:連接被拒絕的telnet:無法連接到遠程主機

相關問題