Shell 脚本自动监控重启 httpd 服务并记录日志
环境
CentOS7
思路
设置一个死循环,执行脚本时开始启动 httpd 服务,同时开始记录当前时间,然后输出到日志中,再 sleep 14 秒,之后马上开始停止 httpd 服务,同时开始记录当前时间,然后输出到日志中。重复这个死循环。
代码
用 vi test.sh
打开文件,按 i 进行编辑,输入下面代码:
#!/bin/sh
while :
do
systemctl start httpd
curdate=`date +"%Y-%m-%d %H:%M:%S"`
echo [INFO] ${curdate} >> /home/opp/test.log "httpd is starting"
sleep 14
systemctl stop httpd
curdate=`date +"%Y-%m-%d %H:%M:%S"`
echo [INFO] ${curdate} >> /home/opp/test.log "httpd is stopping"
done
然后需要创建 test.log
这个文件:
mkdir /home/opp
vi /home/opp/test.log
然后按 Esc
,再按 :wq
退出。
输入下面命令开始执行脚本:
./test.sh
等待一段时间,然后按 Ctrl+Z
停止脚本,输入下面命令查看日志
vi /home/opp/test.log
可以看到以下内容:
可以看到基本做到了让 httpd 服务每 15s 停止,使用脚本监控并且启动,并计入日志。但是由于程序运行需要花费时间,因此有些时间会超过 15s,但大体思路是这样。
日志规范
工作中要注意日志规范,一般最前面是日志级别:INFO、WARN、ERROR 等。然后是时间和记录内容等。详情可以自己上网查看一下日志规范。
参考
最怕一生碌碌无为,还说平凡难能可贵。