携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第十四天,点击查看活动详情
想要在linux服务器中用最简单的方式启动一个定时任务程序,定时调用某个接口,传输某些数据,不用专门开发代码,写框架引入依赖等。
通过了解,发现有crontab命令,这个命令会每分钟检查是否有需要执行的工作,有的话就自动执行
- 首先查看服务器是否安装了crontab
命令为rpm -qa |grep crontab ,如果没有安装,需要先安装crontab
- crontab 语法为
crontab [ -u user ] file
或者
crontab [ -u user ] { -l | -r | -e }
- -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
- -r : 删除目前的时程表
- -l : 列出目前的时程表
查看当前用户所有启动的定时脚本命令为 crontab -l
- 时间格式为
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...个小时要执行,其馀类推
- 使用示例
在服务器某个文件夹下放入要执行的sh文件,比如文件夹目录为 /data/crontab ,文件名称为 testCrontab.sh , 想要每月每天每隔1小时的每30分钟执行test.sh脚本,则命令为
30 */1 * * * /data/crontab/testCrontab.sh