使用crontab在linux服务器中用最简单的方式启动一个定时任务程序

102 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第十四天,点击查看活动详情


想要在linux服务器中用最简单的方式启动一个定时任务程序,定时调用某个接口,传输某些数据,不用专门开发代码,写框架引入依赖等。

通过了解,发现有crontab命令,这个命令会每分钟检查是否有需要执行的工作,有的话就自动执行

  1. 首先查看服务器是否安装了crontab

image.png

命令为rpm -qa |grep crontab ,如果没有安装,需要先安装crontab

  1. crontab 语法为
crontab [ -u user ] file 

或者

crontab [ -u user ] { -l | -r | -e }
  • -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
  • -r : 删除目前的时程表
  • -l : 列出目前的时程表

查看当前用户所有启动的定时脚本命令为 crontab -l

  1. 时间格式为
f1 f2 f3 f4 f5 program
  • 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
  • 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
  • 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
  • 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
  • 当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
  1. 使用示例

在服务器某个文件夹下放入要执行的sh文件,比如文件夹目录为 /data/crontab ,文件名称为 testCrontab.sh , 想要每月每天每隔1小时的每30分钟执行test.sh脚本,则命令为

30 */1 * * *  /data/crontab/testCrontab.sh