文章目录

  • 前言
  • 一、查看系统是否安装crontab命令
  • 二、编写启动服务和停止服务的shell脚本
  • 三、*创建crontab定时任务执行shell脚本
  • 四、让定时任务执行后打印日志记录一下
      • 1.直接让定时任务启动的项目日志重定向到指定日志目录
      • 2.在shell脚本里额外输出自定义日志


前言

由于网安要对公司服务器进行安防测试活动,因此需要对测试环境服务器上的服务进行定时启停,避免端口被网安误伤 需求为测试服务器早上9点linux自动启动后台服务,晚上8点半自动停止后台服务
项目经理提示使用linux的crontab指令实现


一、查看系统是否安装crontab命令

直接输入 crontab -l 查询当前用户的定时任务

crontab -l 

若出现command not found 则表示需要安装crontab


二、编写启动服务和停止服务的shell脚本


三、*创建crontab定时任务执行shell脚本

执行 crontab -e 会打开当前用户的定时任务工作表
如果没有定时任务打开就是一个空的 VI 编辑界面
在里面添加自己的定时任务
到这里定时任务就已经创建完了,如果出现shell脚本无法执行的问题,可能是环境变量的问题,或者是相对路径的问题等等,可参考菜鸟教程

四、让定时任务执行后打印日志记录一下

1.直接让定时任务启动的项目日志重定向到指定日志目录

例如:

30 23 * * * /path/to/shell/script.sh >> /path/to/log/file  
表示每晚的23:30执行/path/to/shell/script脚本,
并且把项目启动日志重定向输出到/path/to/log/file文件。

2.在shell脚本里额外输出自定义日志

例如:

。。。项目启动shell脚本内容。。。
#此处获取系统时间不同方法可以实现多种格式
time=$(date)
echo $time"-----XXX服务已定时启动" >> /path/log/crontablog.log

这样会把每次启停的时间和是否执行记录到 crontablog.log 文件中。(若不存在.log文件则会自动创建并写入,后续记录会追加写入)
此方式更灵活


更多推荐

linux通过crontab命令定时执行shell脚本