51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

linux之定时任务Crond使用

一、用法 {#toc_h2_0}

crond服务是linux系统自带的服务,是不需要手动安装的;

crond服务是一种守护进程;

Linux中的用户使用contab命令来配置corn任务;

  • crontab --e : 修改 crontab 文件,如果文件不存在会自动创建;

  • crontab --l : 显示 crontab 文件;

  • crontab -u : 用户名 -l :查看指定用户的定时任务设置;

  • crontab -r : 删除 crontab 文件;

  • crontab -ir : 删除 crontab 文件前提醒用户。

                    //安装crond服务 [root@VM_0_5_centos ~]# yum install vixie-cron crontabs // 查看crond进程信息: [root@CloudDeskTop ~]# ps -ef|grep crond|grep -v grep //查看crond服务状态 [root@CloudDeskTop ~]# service crond status //停止crond服务 [root@CloudDeskTop ~]# service crond stop //重启crond服务,先停止再开启 [root@CloudDeskTop ~]# service crond restart //开启crond服务 [root@CloudDeskTop ~]# service crond start                  
    
      <svg>
                        <use xlink:href="#vditor-icon-copy" />
    
    
      </svg>
                    </span>
    
    
    
    
    
    
                    //安装crond服务
    

    [root@VM_0_5_centos ~]# yum install vixie-cron crontabs // 查看crond进程信息: [root@CloudDeskTop ~]# ps -ef|grep crond|grep -v grep //查看crond服务状态 [root@CloudDeskTop ~]# service crond status //停止crond服务 [root@CloudDeskTop ~]# service crond stop //重启crond服务,先停止再开启 [root@CloudDeskTop ~]# service crond restart //开启crond服务 [root@CloudDeskTop ~]# service crond start

                  </code>
                </pre>
    

    二、为系统添加定时任务[vi /etc/crontab] {#toc_h2_1}

    2.1、理论 {#toc_h3_2}

    在crontab文件中写入需要执行的命令和时间,该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。每个域之间使用空格或者制表符分隔。

                        # 格式如下: minute hour day-of-month month-of-year day-of-week commands # 合法值为: 00-59 00-23 01-31 01-12 0-6 (0 is sunday)                  
    
          <svg>
                            <use xlink:href="#vditor-icon-copy" />
    
    
          </svg>
                        </span>
    
    
    
    
    
    
                        # 格式如下: 
      minute hour day-of-month month-of-year day-of-week commands    
      # 合法值为:
      00-59  00-23  01-31  01-12  0-6 (0 is sunday)
    
                      </code>
                    </pre>
    
    
    
    
      ![](http://static.51tbox.com/static/2025-03-14/col/ca8000dc735c6a44f03e6b9ce851c8a1/58a292453d3b45aea738f101434dd143.jpg)
    
    
    
    
    
    
      * 第一行SHELL变量指定了系统要使用哪个shell,这里是bash。
    
    
    
      * 第二行PATH变量指定了系统执行 命令的路径。
    
    
    
      * 第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务 执行信息给用户。
    
    
    
    
    
      注 :commands 注意以下几点:
    
    
    
    
    
    
      * 要是存在文件,要写绝对路径
    
    
    
      * 即使是打印也不会显示在显示屏,在后台运行,最好重定向日志
    
    
    
    
    
    
    
                            //定时任务时间格式举例: 5 * * * * /sbin/ls 指定每小时的第5分钟执行一次ls命令 30 5 * * * ls 指定每天的 5:30 执行ls命令 30 7 8 * * ls 指定每月8号的7:30分执行ls命令 30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令 30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。] 30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:","用来连接多个不连续的时段] 25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:"-"用来连接连续的时段] */15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 整点执行ls命令 ] 30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日的6:30执行一次ls 命令。 ]                  
    
              <svg>
                                <use xlink:href="#vditor-icon-copy" />
    
    
              </svg>
                            </span>
    
    
    
    
    
    
                            //定时任务时间格式举例:
          5 * * * * /sbin/ls 指定每小时的第5分钟执行一次ls命令
          30 5 * * * ls 指定每天的 5:30 执行ls命令
          30 7 8 * * ls 指定每月8号的7:30分执行ls命令
          30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
          30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
          30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:","用来连接多个不连续的时段]
          25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:"-"用来连接连续的时段]
          */15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 整点执行ls命令 ]
          30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日的6:30执行一次ls 命令。 ]
    
                          </code>
                        </pre>
    
    
    
    
          除了数字还有几个特殊的符号: ` * ` 、 ` / ` 和 ` - ` 、 ` , `
    
    
    
    
    
    
          * ` * ` 代表所有的取值范围内的数字
    
    
    
          * ` / ` 代表每的意思, ` /5 ` 表示每5个单位
    
    
    
          * ` - ` 代表从某个数字到某个数字
    
    
    
          * ` , ` 分开几个离散的数字
    
    
    
    
    
          cron服务每分钟不仅要读一次 ` /var/spool/cron ` 内的所有针对特定用户的定时任务文件,还需要读一次系统级的 ` /etc/crontab ` 文件;用 ` crontab -e ` 配置是针对某个用户的,而编辑 ` /etc/crontab ` 是针对系统的任务。
    
    
          ### 2.2、 测试: {#toc_h3_3}
    
    
    
    
    
    
    
          * 1)、编写定时任务:[root@CloudDeskTop install]# vi /etc/crontab
    
    
    
    
    
          ![](http://static.51tbox.com/static/2025-03-14/col/ca8000dc735c6a44f03e6b9ce851c8a1/f40cf3df47f54c308db9fc35bd1f0013.jpg)
    
    
    
    
    
    
          * 2)、重启crond服务:[root@CloudDeskTop ~]# service crond restart 
    
    
    
    
            * 查看/install/目录下是否有test.log文件;
    
    
    
            * 实时显示test.log中的内容:[hadoop@CloudDeskTop install]$ tail -f test.log
    
    
    
            * 停止crond服务:[root@CloudDeskTop ~]# service crond stop
    
    
    
    
    
    
    
    
          ### 2.3、 注意: {#toc_h3_4}
    
    
    
          ` run-parts ` 命令只能用于在 ` /etc/crontab ` 中添加定时任务;
    
    
          ![](http://static.51tbox.com/static/2025-03-14/col/ca8000dc735c6a44f03e6b9ce851c8a1/00b05e87fd144c51b784d4c0781a21ea.jpg)
    
    
    
    
    
    
          *** ** * ** ***
    
           标题:linux之定时任务Crond使用 
           作者: https://51tbox.com/ 
           地址: / 
    
    
    
          如未加特殊说明,文章均为原创,转载必须注明出处。均采用 https://creativecommons.org/licenses/by-sa/4.0/deed.zh-Hans !
            本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。  
            • 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。  
            • 公众号转载请联系网站首页的微信号申请白名单!  
    
    
    
          *** ** * ** ***
    
    
           ![]() 
    

赞(2)
未经允许不得转载:工具盒子 » linux之定时任务Crond使用