shell腳本發郵件
發布時間: 2025-08-08 21:31:33
『壹』 linux下shell腳本PING命令只要延遲高於100ms就發送個郵件
#!/bin/bash第三行Timeout_limit值寫錯了,應該是100哈,代碼提交了不能改了。你這個不需要把延遲結果保存在文件的,而是應該需要作定時檢測的。
Timeout=0;
Timeout_limit=1;
Timeout_flag=0;
IP="8.8.8.8"
while [ 1 ]
do
# 取平均延遲的整數位
Timeout="`ping $IP -c 3 | grep 'min/avg/max/mdev'|awk '{print $4}'|cut -b ƍ'`"
if [ $Timeout -ge $Timeout_limit ] && [ $Timeout_flag -ne 1 ]; then
echo ping timeout, average delay=$Timeout ms
mail -s 'Ping Delay' 郵箱 < ar/log/boot.log
Timeout_flag=1
fi
if [ $Timeout -lt $Timeout_limit ] && [ $Timeout_flag -ne 0 ]; then
echo ping recovery, average delay=$Timeout ms
mail -s 'Ping recovery' 郵箱 < ar/log/boot.log
Timeout_flag=0
fi
sleep 5
done
『貳』 linux shell腳本每分鍾執行計劃任務,並把結果發送到mail,怎麼不重復發送
如果是這樣的話 建議你腳本設置一個閥值 用if判斷實現 在統計fail的類型的錯誤的時候 通過uniq和sort之類的排序去重語法 將重復次數和數值計算出來寫入郵箱的臨時文檔里 另外最好不要一分鍾一次 感覺意義不大 如果非要一分鍾一次的話 建議腳本改進 通過當前的date時間做減法 算時間和日誌里的進行比對 然後找出近一分鍾的時間內的fail的IP 寫入tmp文件中 那樣你可以用 >這樣的輸出重定向 以免每次看到都有很多重復信息。 具體的腳本寫法我就不羅列了 自己解決問題才是成長的過程。
熱點內容