整理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

  否则就输出到标准输出了

 

原文地址:https://www.cnblogs.com/ltn26/p/10337500.html