cron 定时任务

2016, Oct 01    

1. 查看 cron 状态(启动,关闭,重启)

service crond status
service crond start
service crond stop
service crond restart

2.crontab

# 查看当前用户的定时任务列表
crontab -l
# 编辑当前用户的定时任务列表
crontab -e

3. 定时任务列表格式

# 指定使用的 shell
SHELL=/bin/bash
# 指定 path
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# 指定任务执行失败时,接收失败信息邮件的邮箱
# 注意要打开防火墙相应端口,否则发送邮件会失败
MAILTO=test@test.com
# 指定 home 目录,最好与当前用户的的 home 目录一致
HOME=/

# 任务列表
# 分钟 小时 日期 月份 星期 CMD
1 * * * * CMD1
*/1 * * * * CMD2

分钟:0-59
小时:0-23
日期:1-31
月份:1-12
星期:0-6(0 表示星期天)

例如:

1 * * * * CMD:表示每个小时的第 1 分钟执行一次 CMD  
30 2 * * * CMD:表示每天的 2 点 30 分执行一次 CMD  
50 1 * * 0 CMD:表示每个星期天的 1 点 50 分执行一次 CMD  

时间可以是连续的或用逗号分隔的
例如:

15,23 1-3 * * * CMD:表示每天的 1 到 3 小时的 15 分和 23 分执行一次 CMD  

除了直接指定运行时间以外,还可以通过 */ 数字 的形式表示每隔多久执行一次
例如:

*/1 * * * * CMD:表示每隔 1 分钟执行一次 CMD  
* 22-4/2 * * * CMD:表示每天 22 点到第二天 4 点每隔 2 小时执行一次 CMD  

** 注意:CMD 最好使用 sh ./xxx.sh 这种形式, 避免指令在执行过程中出现错误 **

4. 排错

  • 检查服务是否正常启动
  • 查看 /var/log/cron 日志是否正常 (需要 root 权限)
  • 查看用户是否在 /etc/cron.deny 中 (需要 root 权限)