郵件報警(postfix)
阿新 • • 發佈:2017-11-14
login span sendmail shp str sta 主機ip 宋體 build
postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件。postfix是Wietse Venema想要為使用最廣泛的sendmail提供替代品的一個嘗試。在Internet世界中,大部分的電子郵件都是通過sendmail來投遞的,大約有100萬用戶使用sendmail,每天投遞上億封郵件。這真是一個讓人吃驚的數字。Postfix試圖更快、更容易管理、更安全,同時還與sendmail保持足夠的兼容性。
系統:CentOS release 6.5 (Final) x86_64
由於centos6後系統就安裝了postfix 因此只需啟動即可:
配置如下:
service postfix start //啟動服務 chkconfig postfix on //設置開機自啟
安裝mailx:
yum install -y mailx 改修配置文件添加如下內容: vim /etc/mail.rc set [email protected] smtp=smtp.xxx.com //郵件服務器 set smtp-auth-user=xxx smtp-auth-password=xxx //用戶及密碼 set smtp-auth=login
測試:
echo ‘123‘|mail -s "123" [email protected]
業務需要監控主機是否宕機及服務狀態所有我通過配置單向ssh免秘鑰登錄運用ssh命令來監控服務。
ssh批量分發腳本:
#!/bin/bash User=root passWord=123 port=2266 function YumBuild(){ echo "正在安裝epel源yum倉庫,請稍後..." cd /etc/yum.repos.d/ &&[ -d bak ] || mkdir bak [ `find ./*.* -type f | wc -l` -gt 0 ] && find ./*.* -type f | xargs -i mv {} bak/ wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo &>/dev/null yum -y clean all &>/dev/null yum makecache &>/dev/null } rpm -q sshpass &>/dev/null || yum -y install sshpass &>/dev/null if [ $? -gt 0 ];then YumBuild yum -y install sshpass &>/dev/null || (echo "sshpass build error!" && exit) fi [ -d ~/.ssh ] || mkdir ~/.ssh;chmod 700 ~/.ssh echo "正在創建密鑰對...." rm -rf ~/.ssh/id_dsa ~/.ssh/id_dsa.pub ssh-keygen -t dsa -f ~/.ssh/id_dsa -P "" &>/dev/null for ip in `cat /root/Pingip.txt` do ping $ip -c1 &>/dev/null if [ $? -gt 0 ];then echo "$ip無法ping通請檢查網絡" continue fi sshpass -p "$passWord" ssh-copy-id -i ~/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no -p2266 ${User}@$ip" &>/dev/null echo "$ip 密鑰分發成功" done
fping與ping的對比
fping與ping中的date數據不同
1. 它們使用的協議相同都是ICMP。
2. 探測機制和默認回顯相同都是延遲延遲。
3. fping可同時探測多個ip,ping只能手工輸出不通ip段。
4. fping的數據包大小為56字節,ping的數據包字節為48(ping全部默認字節為56)。
5. fping默認ping間距為25毫秒,ping默認為1秒。
郵件報警腳本:
#!/bin/sh if [ `which fping |wc -l` -eq 0 ];then wget --limit-rate 500k http://www.fping.org/dist/fping-3.8.tar.gz tar zxvf fping-3.8.tar.gz && cd fping-3.8 ./configure && make && make install fi rm -f result.txt cat /root/baojing/Pingip.txt |fping -u >>result.txt //Pingip.txt為監控主機ip -u只顯示ping不通的機子 while read line do echo "$line宕機"|mail -s "報警" [email protected] done <result.txt for line in `cat /root/baojing/ATSip.txt` //ATSip.txt 為服務機子IP do wget -SO /dev/null "http://www.baidu.com" -e "http_proxy=$line" &> /dev/null //wget代理訪問 if [ `echo $?` -eq 0 ] && [ `ssh -p2266 root@$line ps aux|grep /usr/local/tcacheserver/bin/traffic_ |grep -v grep |wc -l` -eq 3 ] then echo "" >/dev/null else echo "$line ATS is down"|mail -s "報警" [email protected] fi done
郵件報警(postfix)