Crontab定时任务配置
Crontab定时任务配置
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
Crontab语法及应用
-
查看当前用户的定时任务
[root@localhost ~]$ crontab -l */2 * * * * sh /home/oracle/test.sh >/dev/null 2>&1 -
编辑当前用户的定时任务
#可以在编辑状态修改、删除、新增一些定时任务,注释一般用# [root@localhost ~]$ crontab –e -
删除当前用户的定时任务
[root@localhost ~]$ crontab -r [root@localhost ~]$ crontab -l no crontab for root注意:在执行crontab –r命令时,默认会删除当前用户的所有定时任务,操作需谨慎,如果只想删除某个定时任务,只需要将该定时任务注释即可。 -
定时任务格式说明
一般crontab文件里面的定时任务格式如下所示:
*/2 * * * * sh /home/oracle/test.sh >/dev/null 2>&1crontab 文件中每个条目中各个域的意义和格式为:
- 第一列 分钟: 1—59
- 第二列 小时: 1—23(0表示子夜)
- 第三列 日 : 1—31
- 第四列 月: 1—12
- 第五列 星期: 星期0—6(0表示星期天,1表示星期一、以此类推)
- 第六列及其后:要运行的命令
前面五列通过组合方式来决定执行脚本的频率,最小频率为每分钟执行一次,通常可以用以下四种形式来表示:
- * 表示每的意思,即每分钟、每小时(依次类推.....)去执行第六列的命令。
- */n 表示每n分钟、每n小时(依次类推.....)去执行第六列的命令。
- T1-T2 表示从第T1分钟到T2分钟,从第T1小时到T2小时(依次类推.....)去执行第六列的命令。
- a,b,c 表示第a,b,c分钟,第a,b,c小时(依次类推.....)去执行第六列的命令。
样例:
- 每天23点59分执行脚本/home/oracle/test.sh
59 23 * * * sh /home/oracle/test.sh >/dev/null 2>&1 - 每5分钟执行一次脚本/home/oracle/test.sh
*/5 * * * * sh /home/oracle/test.sh >/dev/null 2>&1 - 周一到周五每天下午 20:00 执行脚本/home/oracle/test.sh
0 20 * * 1-5 sh /home/oracle/test.sh >/dev/null 2>&1
2>&1:0表示键盘输入,1表示标准输出,2表示错误输出;2>&1 是将错误输出重定向到标准输出,然后将标准输入重定向到文件/dev/null。/dev/null:在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据。 -
配置定时任务时,需要注意两个问题:
-
在shell中设置了必要的环境变量;例如一个shell脚本手工执行OK,但是配置成后台作业执行时,获取不到对应的环境变量信息,这是因为crontab环境变量问题,crontab的环境默认情况下并不包含系统中当前用户的环境。所以,你需要在shell脚本中添加必要的环境变量的设置。
-
尽量所有的文件都采用完全路径方式,避免使用相对路径。
-
获取Crontab执行脚本
通过crontab –l 命令,可以查看到当前用户的定时任务信息:
[root@localhost ~]$ crontab -l
*/2 * * * * sh /home/oracle/test.sh >/dev/null 2>&1
其中/home/oracle/test.sh即为定时执行的脚本。在Linux及AIX操作系统中,我们可以通过cat 命令查看文件内容。例如:想要查看/home/oracle/test.sh脚本中的信息,只需执行cat /home/oracle/test.sh命令即可。

浙公网安备 33010602011771号