zoukankan      html  css  js  c++  java
  • 整理Crontab 定时计划

    一. 什么是crontab?

    crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos,原意是时间。 (来自维基百科)

    二. crontab常见用法

      1.常用命令

        cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

                crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数  
          crontab -l //列出某个用户cron服务的详细内容
          crontab -r //删除没个用户的cron服务
          crontab -e //编辑某个用户的cron服务
          比如说root查看自己的cron设置:crontab -u root -l
          再例如,root想删除fred的cron设置:crontab -u fred -r
          在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
          进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
                任务调度的crond常驻命令
                crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此  

               任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工

               作便会自动执行该工作。

      2.常见用法

        eg:  * 1 * * * /sbin/reboot

        头上例子代表的意思是在每天的凌晨一点执行重启命令

        一个crontab 大约包含六部分分别是 分     小时    日       月       星期     命令 

        另外一些特殊字符代表的意思分别是:

        “*”  代表取值范围内的数字,
                “/”  代表”每”,
                “-”  代表从某个数字到某个数字,
                “,”  分开几个离散的数字

        


        对于不指定的字段,要用“*”来填补其位置。举例如下:

        1  *  *  *  *  command   指定每小时的第1分钟执行一次命令
       
        1 5 *  *  *  command   指定每天的 5:01 执行命令
       
        1  7  8  *  *  command   指定每月8号的7:01分执行命令
       
        1 5  8  6  *  command   指定每年的6月8日5:1执行命令
       
        1 6  *  *  0  command   指定每星期日的6:01执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]


        1 7 * * * root run-parts /etc/cron.daily 每天7:01以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

    三.查看运行日志

      1.  linux
      看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察(不能用cat查看)

      2. mail任务
      在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。

      3.为crontab添加日志

      0 6 * * * $HOME/for_crontab/createTomorrowTables >> $HOME/for_crontab/mylog.log 2>&1

      把错误输出和标准输出都输出到mylog.log中。


      注意:不要写成

      0 6 * * * $HOME/for_crontab/createTomorrowTables 2>&1 >> $HOME/for_crontab/mylog.log

      否则就输出到标准输出了

     

  • 相关阅读:
    Java线程面试题 Top 50
    抽象类
    this和super的区别
    引用传递
    【代码】递归调用
    java异常
    抽象类 final
    sublime使用技巧
    zabbix表达式
    tcpdump
  • 原文地址:https://www.cnblogs.com/ltn26/p/10337500.html
Copyright © 2011-2022 走看看