前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >crontab定时任务详解

crontab定时任务详解

作者头像
Marser
发布2018-06-25 17:31:24
9070
发布2018-06-25 17:31:24
举报
文章被收录于专栏:智能合约智能合约

启用

代码语言:javascript
复制
    service crond start

基本格式

代码语言:javascript
复制
  #分  时  日  月  周
  * * * * *   command  path
  # 第1列表示分钟(0~59) 每分钟用"*"或者"*/1"表示
  # 第2列表示小时(0~23)
  # 第3列表示日期(1~31)
  # 第4列表示月份(1~12)
  # 第5列表示星期(0~6   0表示星期天)

示例

代码语言:javascript
复制
  #表示每晚的21:30执行命令
  30  21 * * * command
代码语言:javascript
复制
  #表示每月的1号、10号、22号的4:45执行命令
  45  4  1,10,22  * * command
代码语言:javascript
复制
   #表示每天的18:00到23:00之间每隔30分钟执行命令
   0,30  18-23  * * * command
代码语言:javascript
复制
    #表示每周六的23:00执行命令
    0  23  *  *  6   command
代码语言:javascript
复制
    #表示每小时执行命令
    *  */1  *  *  *  command

    #每天晚上23点到次日早上7点之间,每隔1小时执行命令
    *  23-7/1  *  *  *  command
代码语言:javascript
复制
    # 每月4号与每周一到周三的11点执行命令
    0  11  4  *  1-3  command

命令参数

代码语言:javascript
复制
    # 指定执行用户
    -u  [user]

    列出指定用户下的定时任务
    -l [user]

    #编辑指定用户下的定时任务
    -e [user]

    #删除指定用户下的定时任务
    -d [user]

    #指定crontab的目录
    -c dirname

    #删除目前的定时任务
    -r

特殊字符(示例如上)

  • *(星号) 代表任何时候
  • ,(逗号) 代表分隔时段的意思
  • -(减号) 代表一段时间范围内
  • /n(斜线) 代表每隔n单位时间间隔

注意事项

不可以使用几月几号且为星期几的模式,即周与日月不可同时并存。如下即为错误的写法:

代码语言:javascript
复制
    30  12  11  9  5  command

& 后台执行命令

在前台运行某个任务时,终端被该任务占据,可以使用&命令把任务放到后台执行。

代码语言:javascript
复制
    30  2  *  *  * php test.php  &

2>&1 含义

先看一个例子:

代码语言:javascript
复制
    0  2  *  *  *  php  test.php  >/home/logs/test.log  2>&1  &

这个定时任务的意思就是在后台执行这条命令,并将错误输出2重定向到标准输出1,然后将标准输出1全部存到/home/logs/test.log文件中,并清空/home/logs/test.log日志文件。

这里的数字意思如下:

代码语言:javascript
复制
    0 表示 键盘输入
    1 表示 标准输出
    2 表示 错误输出

上面的示例,我们也可以使用如下方式:

代码语言:javascript
复制
    #将标准输出重定向/home/logs/test.log文件中,即输出内容不打印在屏幕上
    0  2  *  *  *  php  test.php  1>/home/logs/test.log  &

    #将错误输出重定向/home/logs/test.log文件中
    0  2  *  *  *  php  test.php  2>/home/logs/test.log  &  

    #将错误输出重定向到标准输出,然后再标准输出重定向到/home/logs/test.log文件
    0  2  *  *  *  php  test.php  1>/home/logs/test.log  2>&1   &

    #以下两种方式代表的意思相同
    0  2  *  *  *  php  test.php  >/home/logs/test.log  2>&1  &
    0  2  *  *  *  php  test.php  1>/home/logs/test.log  2>&1   &

日志记录

crontab的运行日志记录在“/var/log/cron”文件中

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:201804-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 启用
  • 基本格式
  • 示例
  • 命令参数
  • 特殊字符(示例如上)
  • 注意事项
  • & 后台执行命令
  • 2>&1 含义
  • 日志记录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档