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 等。然后是时间和记录内容等。详情可以自己上网查看一下日志规范。

参考

shell脚本每隔几秒执行一次

shell 获取当前日期,当前时间

Linux(centos)新建,删除,移动文件夹和文件的命令

Shell 输入/输出重定向

自动监控apache服务状态并重启的shell脚本

日志规范总结篇

LOG使用规范(整理)

全部评论

相关推荐

积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
Lorn的意义:你这标个前端是想找全栈吗?而且项目确实没什么含金量,技术栈太少了,边沉淀边找吧 现在学院本想就业好一点四年至少得高三模式两年加油吧
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 12:20
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务