一、前言
- 就是刚去公司,然后有个项目是每天都需要执行一些任务的
- 然后听说之前旧版的项目有时会自动挂了,导致任务没执行
- 然后我接手之后改版之后,暂时是没遇到挂了的情况。
- 但是为了保险,打算在服务器写一个定时监控程序,如果挂了就给它重启
虽然对自己代码也算自信,但是多重防护还是有必要的
二、Centos7设置定时任务
- 在centos上最常用的定时任务应该就是crontab了,本文也是用它
1、检查是否安装了crontab
- 运行命令:
crontab -l
- 如果显示
no crontab for root
或者 显示当前的任务列表 或者 不报错 那说明已经安装
2、安装crontab
- 如果发现没有安装,直接执行yum安装即可,如下
# 安装crontab |
3、设置定时任务
- 设置定时有几种方式
①、直接编辑配置文件
- 配置文件路径:
/etc/crontab
- 直接添加到最后一行即可
- 因为在crontab中,
%
是代表着换行,所以需要转义 - 如:
* * * * * root echo \"test-$(date '+\%Y\%m\%d\%H\%M\%S') info\" >> /root/cron.log
②、使用crontab -e
命令编辑
- 使用命令编辑相当于就是编辑当前用户的任务,所以不需要加用户字段
- 如:
* * * * * echo \"test-$(date '+\%Y\%m\%d\%H\%M\%S') info\" >> /root/cron.log
- 这里其实会写入到:
/var/spool/cron/
目录下以当前用户名字命名的文件 - 如,如果是root用户,那么就是:
/var/spool/cron/root
这个文件
三、定时监控程序
- 知道怎么设置定时任务,那接下来就是写脚本查看程序是否运行了
1、编写脚本
- 我这边是查看Java进程,思路是一样的,就是通过命令查看程序是否在运行
- 为了方便,我把程序的 关闭、启动、监控、日志 等全放一个脚本里面了。
- 如下:
|
- 如上,脚本中的
monitor
方法就是监控程序执行的 - 我是把监控的信息,打印到了
cron.log
日志文件中
②、设置定时任务
- 执行命令:
crontab -e
添加内容:*/1 * * * * /home/met/server.sh monitor
- 然后就结束了,执行结果如下: