shell發短信和郵件

用shell腳本定時發短信監控linux系統的運行壯況

作者:網絡醫生 發佈於:2012-4-21 20:36 Saturday 分類:shell

1、很多時候我們不想登錄linux系統就想隨時隨地的瞭解系統的運行壯況,我們可以寫一個腳本定時執行後往手機發一條短信來通知linux系統的運行壯況。

2、腳本內容如下(從我自己的服務器上粘下來的):

vi  send.sh

############Begin################

#!/bin/bash
#清空前一次的記錄
echo "" > ~/send.txt
echo "Now total on line IP:" >> ~/send.txt
#統計出有多少人線訪問
/bin/netstat -ant | grep ESTABLISHED |wc -l >> ~/send.txt
#統計內存使用了多少
echo "Total memory:" >> ~/send.txt
free -m|grep Mem|awk '{print $2}' >> ~/send.txt
echo "Used memory:" >> ~/send.txt
free -m|grep Mem|awk '{print $3}' >> ~/send.txt
#統計出前一天總訪問IP數:
echo "Yesterday total access IP:" >> ~/send.txt
find /home/webserver/httpd2.2.14/logs/backup_logs -type f -mtime 1 -exec awk -F "-" '{print $1}' {} \;|sort|uniq|wc -l >> ~/send.txt
cat ~/send.txt | mail -s "blog_server_info" 1384909****@139.com

############END###################

3、在cron裏設置定時執行,例:

每天上午11:35執行:  35 11 * * * /root/send.sh

4、設置Linux服務器的名稱 hostname  num123.com,這樣設置後郵箱收到郵件時發件人的地址就是[email protected]

如果不設置的話發件人的地址格式不正確,怪怪的,這樣很多郵件服務器就會拒絕接收這樣的郵箱,從面導致發送了但接收不到的現象。

注意:

1、思路很簡單,就是用腳本統計出需要的數據,然後寫到send.txt文件裏面,再用mail命令把send.txt內容發到郵箱裏面。這裏使用的是移動139郵箱,139郵箱可以收到郵件後免費轉發到手機上面。

2、linux系統必須安裝sendmail,如果沒有安裝使用yum install sendmail 即可

3、解釋一下,下面這行的意思:

find /home/webserver/httpd2.2.14/logs/backup_logs -type f -mtime -1 -exec awk -F "-" '{print $1}' {} \;|sort|uniq|wc -l >> ~/send.txt

先用find命令找出前一天的日誌,用awk列出所有的IP,sort對IP進行歸類排序,uniq去掉重複的IP,wc -l 統計出IP總數。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章