crontab定时任务详解

启用

    service crond start

基本格式

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

示例

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

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

命令参数

    # 指定执行用户
    -u  [user]

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

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

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

    #指定crontab的目录
    -c dirname

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

特殊字符(示例如上)

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

注意事项

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

    30  12  11  9  5  command

& 后台执行命令

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

    30  2  *  *  * php test.php  &

2>&1 含义

先看一个例子:

    0  2  *  *  *  php  test.php  >/home/logs/test.log  2>&1  &

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

    0 表示 键盘输入
    1 表示 标准输出
    2 表示 错误输出

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

    #将标准输出重定向/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”文件中

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码神联盟

碎片化 | 第一阶段-06-第一个小程序-视频

如清晰度低,可转PC网页观看高清版本: 第一个java程序Hello word 暂时我们先使用记事本来编写代码,不建议直接使用开发工具eclipse,那都自动生...

3478
来自专栏高性能服务器开发

数据库进阶3 Mysql 性能优化20个原则(1)

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事...

681
来自专栏Java帮帮-微信公众号-技术文章全总结

day07.HDFS学习【大数据教程】

分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析;

1204
来自专栏Hadoop数据仓库

HAWQ技术解析(十二) —— 查询优化

        即便对SELECT等数据库查询语句已经很熟悉了,但HAWQ里的查询有其自己的特点,还是需要研究一下。 一、HAWQ的查询处理流程        ...

3966
来自专栏Java技术

Git的核心概念

文章内容来自自己的理解 和 https://git-scm.com/book/en/v2 。

784
来自专栏信安之路

利用DNS协议回显数据

这个问题已经是去年提出的了,之前也看到过,在 CTF 题目环境中利用过却对原理不慎了解,在公司大佬们的帮助下成功了理解了一波原理。

630
来自专栏DannyHoo的专栏

iOS开发中利用MJExtension进行归档

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

792
来自专栏FreeBuf

安全科普:SQLi Labs 指南 Part 1

译者:SQL Libs一直也没看到有人写过比较完整的指南,只有作者在自己的博客上帖了一些tip和一些视频,偶然看到一篇文章在写这个,便拿过来翻一下,以作参考,原...

1749
来自专栏数据和云

升级迁移:利用DMU修改数据库字符集

何剑敏 Oracle ACS华南区售后团队,首席技术工程师 曾供职于中国联通信息计费部、卓望数码,系统支撑部首席DBA,负责中国移动全网梦网业务和移动应用商城数...

2889
来自专栏信安之路

路由器漏洞 EXP 开发实践

本文主要以 CVE-2013-0230 漏洞为例,讲解路由器上缓冲区漏洞的 exp 编写。

1110

扫码关注云+社区