使用crontab

作者: 5473 分类: Linux 发布时间: 2014-09-18 15:42 阅读数:703

常用命令

shell>service crond start //启动服务
shell>service crond stop //关闭服务
shell>service crond restart //重启服务
shell>service crond reload //重新载入配置

shell>crontab -l //列出某个用户cron服务的详细内容
shell>crontab -r //删除某个用户的cron服务
shell>crontab -e //编辑某个用户的cron服务

 

Crontab格式说明

分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-7) //0和7代表星期天
除了数字,*代表所有的取值范围内的数字,”/”代表每的意思,”*/5″表示每5个单位,”-“代表从某个数字到某个数字,”,”分开几个离散的数字。

 

例子

  • 每天早上6点
    0 6 * * *
  • 每两个小时
    0 */2 * * *
  • 晚上11点到早上8点之间每两个小时
    0 23-7/2 * * *
  • 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
    0 11 4 * 1-3
  • 1月1日早上4点
    0 4 1 1 *

可以通过访问http://tool.lu/crontab检查crontab表达式。

查看crontab日志

shell>tail -f /var/log/cron

 

常见问题

Q:直接运行脚本可以,但是通过 crontab却不可以运行?
A:请将运行的结果(包括标准输出和错误输出)写入日志,例如
shell>crontab -e
0 7 * * 1-5 ~/test.sh >~/test.out 2>&1
然后查看日志,通常的原因可能是环境变量的问题,crontab在执行的时候只会定义少数环境变量而不是继承用户shell环境中的环境变量。简单的解决方式是在shell脚本的头上用缺省的#!/bin/sh,然后第一个部分先写这些:
. /etc/profile
. ~/.bash_profile

Q:crontab怎么设置级调度?
A:如每20秒运行scripts.sh,可以这么设置:
* * * * * /home/somedir/scripts.sh
* * * * * sleep 20 && /home/somedir/scripts.sh
* * * * * sleep 40 && /home/somedir/scripts.sh

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注