linux下利用crontab创建定时任务

时间:2022-01-25 21:10:20

linux下可以利用crontab创建定时任务。

常用搭配

crontab -e 编辑任务

crontab -l 查看所有任务[该用户]

crontab -r 取消所有任务[该用户]

任务格式

× × × × × +命令(具体任务)

前5个参数表示时间,依次为:

参数 范围

分钟 0-59

小时 0-23

日期 1-31

月份 1-12

星期 0-6(0代表星期日)

特殊符号

为了精确表示定时,需要一些特殊符号来描述具体的任务执行时间。有以下几个符号:

“/” 代表每,每隔多长时间

“*” 代表任何时间

“-” 代表从某时刻到另一时刻的一段时间

“,” 代表离散的时间

案例

0 8 1 1 * command 每年1月1日8点执行command
*/30 * * ** command 每隔30分钟执行command
0 6-18 * * * command 每天6点到18点执行command
30 6,9,12 * * * command 每天6点30、9点30、12点30执行command
0 6-18/3 * * * /usr/bin/php /var/www/html/save.php 每天6点到18点每隔3个小时用/user/bin/php执行/var/www/html/save.php

注意

crontab中设置的command都是相对路径的,所以命令中执行的脚本应当尽量设置为绝对路径。另一方面,脚本中假如有输出会输出到当前用户目录下,因此脚本中如果有路径的话,也请设置为绝对路径!

今天又踩了一次坑,特此说明一下

1.脚本执行程序使用绝对路径,如上例/usr/bin/php

2.被脚本执行的文件使用绝对路径,如上例/var/www/html/save.php

3.脚本输出、操作文件使用绝对路径,如save.php中的输出文件

crontab报错会通过邮件发送给用户,centos下目录为 /var/spool/mail/user,长期积累可能造成/var/下占用空间过大,应及时清理。(dG in vi)