利用mail實時監測服務器程序狀態

1 mail環境搭建

1.1 安裝mail套件

ubuntu環境:apt-get install mutt msmtp linux

centos環境:我沒有采用mutt,是用的sendmail或mail中的一種,有須要的同窗能夠參考這裏。  shell

1.2 配置

1.2.1 MUTT

系統全局設置/etc/Muttrc,若是使用某個系統用戶,能夠在~/.muttrc中設置。

vi .muttrc ubuntu

set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="20043790"
set from=20043790@163.com
set envelope_from=yes

1.2.2 MSMTP 

建立~/.msmtprc和~/.msmtp.log,分別爲配置和日誌文件。
vi .msmtprc
account default
host smtp.163.com
from 20043790@163.com
auth plain
user 20043790
password 123456
logfile ~/.msmtp.log

因爲password是明碼,因此咱們須要修改此文件的權限。  centos

chmod 600 .msmtprc
touch ~/.msmtp.log

1.2.3 驗證郵件服務器

查看SMTP服務器是否支持認證的TLS加密: 服務器

敲入以下命令:msmtp --host=smtp.163.com --serverinfo回車


1.3 測試

1.3.1 發一封郵件

1.3.2 QQ PC客戶端郵件提醒

1.3.3 微信郵件提醒

2 linux守護腳本

[root@root src]# cat daemon.sh 微信

[root@root src]# cat daemon.sh
#!/bin/sh

programs="app1 app2 app3"

while true
do
   for p in $programs
   do
      ps -e|grep $p |grep -v "grep" >/dev/null

      if [ "$?" -ne 0 ]
      then
         timestr=`date +20%y%m%d_%H%M%S`
         echo "Time:$timestr, restart <$p>"
         /root/src/$p >/root/src/log/${p}_$timestr.log 2>&1 &
         echo "Unfortunately, $p restart."|mail -s warning_restart 412493505@qq.com -- -f 20043790@163.com
      #else
         #echo "$p is running"
      fi
   done

   sleep 1
done


個人雲主機是centos的,用的是mail發郵件,一樣能夠用mutt的命令行發送方式。 app

該守護腳本守護三個程序 app1-3,當有某一個程序死掉後,重啓該程序並開啓新的log,同時發郵件到指定的郵箱。 測試

3 驗證

killall app1後,守護腳本在1秒內將程序重啓,約15秒後收到郵件提醒。 加密

相關文章
相關標籤/搜索