2014-05-08 96 views
0

我有一個關於我發現監視網絡設備的腳本的問題。Debian的網絡監視腳本

腳本:

#!/bin/bash 

HOSTS="192.168.11.1" 
COUNT=1 


SUBJECT="Ping failed" 
EMAILID="[email protected]" 
for myHost in $HOSTS 
do 
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print  $1 }') 
if [ $count -eq 0 ]; then 

echo "Host : $myHost is down (ping failed) at $(date)" | mail -s "$SUBJECT" $EMAILID 
fi 
done 

當執行腳本,似乎工作,但它不會發送任何內容的電子郵件地址。 誰能告訴我我做錯了什麼?

+0

嘗試改變'mail'到'mailx' –

+0

這並不能幫助我很多。使用較舊版本的郵件並不能解決問題。 – user3183115

回答

0

按如下編輯腳本,然後重試。

#!/bin/bash 

HOSTS="192.168.11.1" 
COUNT=1 
SUBJECT="Ping failed" 
EMAILID="[email protected]" 

for myHost in $HOSTS 
do 

count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }') 

if [ $count -eq 0 ]; then 

cd ~ 

if [ -s PING_FILE ] 
then 
rm PING_FILE 
fi 

echo "Host : $myHost is down (ping failed) at $(date)" > PING_FILE 
mail -s "$SUBJECT" $EMAILID < PING_FILE 

#if you want to get the file itself use the below code # 
mutt -s "$SUBJECT" -a PING_FILE - $EMAILID < PING_FILE 

fi 

done 

問候,

多米尼克

+0

我試過了,它仍然不會發送電子郵件。我覺得從grep命令開始有一些參數錯誤。我真的很困惑.. – user3183115