工作中用到了linux的定时任务,在此记录一下
我用的环境是 contos7.3
首先 看一下crontab常用的几个指令
crontab -e //编辑定时任务列表
crontab -l -u username //查看某一用户的所有任务
crontab -r //删除所有任务
crontab -r -u username //删除某一用户所有任务
当没有定时任务时 我们执行crontab -l 会提示 no crontab for root
定时任务的基本格式
* * * * * 待执行指令
星号的含义 分 时 日 月 星期几 以上代表每一分钟都会执行一次指令
星号 取值范围
分 0-59 时 0-23 日 1-31 月 1-12 星期 0-6 (0代表星期天)
我们也可以使用一些特殊符号来表示一个时间段或者时间间隔
逗号(,) 可以指定一个范围列表 如 用 1,3,5,7 来替换掉 上面的第一个星号 则表示在每个小时的 第 1,3,5,7分钟会执行指定指令
横杆 (-) 表示一个数字范围 如 2-6 等同于 2,3,4,5,6
斜杆(/) 表示时间间隔频率 如上面第一个星号替换为 */2 则代表 每隔两分钟执行一次 或者 0-5/2 这个代表 每隔小时的前五分钟 每隔2分钟运行一次
如何添加一个定时任务:
1. 执行 crontab -e 进入定时任务编辑(进去后要按i才能编辑 用起来和 vim一样)
2. 写入定时任务表达式 * * * * * 待执行指令
3. 保存
这个时候 会提示 installing new crontab 就代表ok了
小提示 — 有时候 待执行的 指令太长 我们可以写成一个 .sh的脚本 再执行这个脚本
最后举个栗子 这是我在做服务器ssl证书续期的表达式 因为letsencrypt的证书有效期是三个月 之后就需要手动续期
下面这个表达式 将会每隔两个月的 28号凌晨1点过五分执行我的放在根目录下的续期脚本
5 1 28 */2 * /CertificateRenewal.sh