1. crontab命令
1)查看定时任务列表
crontab -l
2)编辑设置定时任务
crontab -e(和使用vi编辑其他文件一样来修改crontab文件并退出。)
2. 设置定时任务
定时任务配置语法:
分 时 日 月 周 要执行的命令 输出配置
时间配置中几个特殊符号的含义:
* 代表取值范围内的数字(时间)
/ 代表”每”
- 代表从某个数字(时间)到某个数字(时间)
, 分开几个离散的数字(时间)
例子说明:
# 每分钟执行一次/bin/sh /data1/htdocs/test/mock.sh命令
*/1 * * * * /bin/sh /data1/htdocs/test/mock.sh >> $TIMER_ERROR_PATH/test.$(date +\%Y\%m\%d).log 2>&1
【
>> 表示追加(到文件中)
1 表示stdout标准输出,系统默认值是1,所以 ">/dev/null" 等同于 "1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
%在crontab中被认为是newline,要用\来escape才行。所以crontab的date +%Y%m%d",必须替换为:"date +\%Y\%m\%d"
整句的意思就是标准输出追加到$TIMER_ERROR_PATH/test.$(date +\%Y\%m\%d).log,标准错误输出重定向到与标准输出一致,即$TIMER_ERROR_PATH/test.$(date +\%Y\%m\%d).log
】
# 每月1号零时零点执行/bin/sh /data1/htdocs/test/mock.sh命令
0 0 1 * * /bin/sh /data1/htdocs/test/mock.sh > /dev/null 2>&1
【
>表示重定向(到新文件中,每次执行会覆盖)
/dev/null 代表空设备文件
1 表示stdout标准输出,系统默认值是1,所以 ">/dev/null" 等同于 "1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
整句的意思就是标准输出重定向到空设备文件,也就是不让系统记录返回错误和正确的信息,不产生日志
】
# 每小时执行两次,2分,32分执行/bin/sh /data1/htdocs/test/mock.sh命令
2,32 * * * * /bin/sh /data1/htdocs/test/mock.sh >> /dev/null 2>&1
【将标准输出和错误输出丢弃】
# 每月一号,0点到6点,5分钟执行一次/bin/sh /data1/htdocs/test/mock.sh命令
*/5 0-6 1 * * /bin/sh /data1/htdocs/test/mock.sh >> /dev/null 2>&1