今天公司LD让写个小脚本,监控一个进程是否存在,存在怎退出脚本,如果不存在就发一封邮件给指定邮箱,我是通过守护进程的运行状态来判断该服务的连接情况,并将测试结果显示到标准输出上。
为了方便监控,使用crontab使其每两小时执行一次。
代码:
#!/bin/bash # #提示用户输入一个指定守护进程名称,并将其赋予变量n_proc #echo "Please input a name of process #read n_proc # #搜索变量n_proc中指定的守护进程的进程号,并赋值给变量pidnu pidnu=$( ps ax |grep -v "ps ax"|grep -v grep |grep $n_proc|awk '{print $1}') # echo "checking for \"$n_proc\",please wait..." # #判断变量pidnu是否为空,空则证明此进程不存在。 if [ -z "$pidnu" ] then echo "The status be stopped..." mail -s "title" *********@163.com < /root/shell/mail.txt exit else echo "The status be running..." fi
设置定时任务
[root@localhost ~]# crontab -e 2 * * * * sh ~/shell/status.sh (如果使用定时任务的话,就应该把上面的$n_proc换成指定的某个进程)
邮件已成功发送