crontab用于设置周期性被执行的指令,最近有在工作中尝试着编辑了一个命令,所以决定将这个命令编辑整理一下保存起来,以便以后会用到

使用权限:所有用户

参数:

-e [UserName]: 编辑目前的时程表

-r [UserName]: 删除目前的时程表

-l [UserName]: 列出目前的时程表

-v [UserName]:列出用户cron作业的状态

基本格式 :  f1 f2 f3 f4 f5 program

f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式

f1为*时表示每分钟都要执行,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小时要执行依次类推

f1、f2、f5需要注意均为0开始,f1为0时表示整点,f2为0时表示24点,f5为0时表示为周日(0~6)

例子:

每天早上7点执行一次 /bin/ls :
0 7 * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
注意:

在定时执行脚本如果要写日志的话要注意路径要写绝对路径,如果没有写路径的话可能会写到根目录,如果写的是相对路径可能会造成路径不存在而执行错误,但是crontab本身并不会报错,或是因为其它原因而找不到路径

在定时执行任务时,如要免密钥连接数据库需要主要注意该用户是否可免密钥连接数据库,否则也会造成任务自动执行失败

很多时候并不是可以手动执行程序成功了即可证明自动自行任务也可以成功