一.crond系统服务
crond是Linux下用于周期性执行计划任务的或等待处理事件的守护进程。
因为Linux系统上原本就有很多计划任务,因此crond服务默认是开启的。操作系统安装完毕,自动安装crond。
Crond进程每分钟定时检查是否有执行任务,如有自动执行。
二.crontab文件
crontab -e 编辑查看crontab文件内容,每行一个定时任务。
每个定时任务有六个字段,前五段是时间设定段,第六段是命令段。
minute hour day month week command
minute:分钟,0-59
hour:小时,0-23
day:日期,1-31
month:月份,1-12
week:星期,0-7,0或7表示星期天
command:要执行的命令,多为编写的脚本文件
上面的几个字段中,可以使用星号(*),逗号(,),横杠(-),斜线(/)做特殊处理
星号:代表所有值,***** command表示每分钟执行一次定时任务,1*****代表每小时的第一分钟执行定时任务,即每小时执行一次
逗号:指定列表范围,如1,2,3,5,6 **** command 代表每小时的第一二三五六分钟各执行一次定时任务,即每小时五次
横杠:表示整数范围,**2-4** command 表示每个月的2号3号四号执行定时任务,即每月3次
斜线:间隔频率,* 0-23/2 *** command 表示每两小时执行一次定时任务。*/10 **** command 表示每十分钟执行一次定时任务。
三.crontab命令
crontab -e 进入编辑模式,可新增,删除,修改定时任务
注意:
1. crontab命令中要注意执行文件的目录和所需环境
2. %表示换行,如果要用需要转义\%,如date中的%Y%m%d要写为\%Y\%m\%d
3.当定时任务不按计划执行时,可以将错误原因打印到指定文件中,如下所示:
* * * * * command > test.log 2>&1
解释:test.log表示 执行command产生的标准输出重定向到test.log中
2>&1 表示将标准错误重定向到标准输出(test.log)中
加上>test.log 2>&1的结果是,不论定时任务是否执行成功,都会将结果记录到test.log中