• Debian的定时执行命令Crontab


    转载:http://i.592.net/?post=276

    Debian的定时执行命令Crontab,这个相当于Windows的计划任务

        想要让Debian定时执行命令就得靠crontab了!
        它的功能类似微软的计划任务,可以在您设定的时间执行你想要的命令。
        通过编写设定文件可以组合出复杂的执行时段,让命令的执行更加有效率。

    cron设置文件在Debian系统下的位置
       /etc/crontab

    大致内容如下:

    01 # /etc/crontab: system-wide crontab
    02 # Unlike any other crontab you don't have to run the `crontab'
    03 # command to install the new version when you edit this file.
    04 # This file also has a username field, that none of the other crontabs do.
    05  
    06 SHELL=/bin/sh
    07 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    08  
    09 # m h dom mon dow user command
    10 17 * * * * root run-parts --report /etc/cron.hourly
    11 25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily
    12 47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly
    13 52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly
    14 0 20 1 * * root /usr/bin/updatedb
    15 #

    需要设定的是 # m h dom mon dow user command 下面的部份
    由左至右相对应的意思为:

    分0-59   时0-23   日1-31   月1-12   周0-7  执行命令的用户   命令


    其中比较有意思的是:周,0和7都代表星期日

    而可以使用的特殊符号有

    * (星号)   代表所有时间都接受
    , (逗号)   代表同一个分类可以有多少个值
    - (减号)   代表在这个时段内执行
    /n          代表每n个时间就执行一次

    范例:

    30 12 * * * command:   <em>每天12:30执行command</em>
    0 6,12 15 * * command:<em>每月15日的6:00和12:00执行command</em>
    10 8 1-15 6 * command:<em>每年6月1至15日的8:10执行command</em>
    */5 * * * 7 command:   <em>星期日每隔五分钟执行一次command</em>

    定时器语法:
    就是上面计划任务的第一部分。它决定了何时执行计划任务。

    它包含5部分:
      1.分钟(0-59)
      2.小时(0-23)
      3.一个月的哪一天(1-31)
      4.一年中的哪个月(1-12)
      5.星期几(0是星期天)

      星号  如果某个部分出现的是星号而不是数字,就是说明这个部分表示的时间全部会执行。

    可能一时不太容易说清楚,再看例子吧。

    示例:
       1、下面的计划任务会一直运行
            * * * * * [command]

       2、下面的计划任务会在每个小时的0分时运行(就是每小时执行一次)
            0 * * * * [command]

       3、下面依旧是一个每小时运行一次的计划任务。不过是在每个小时的一刻钟时运行的(1:15,2:15.。。)
           15 * * * * [command]

       4、下面的计划任务每天执行一次,在2:30分
            30 2 * * * [command]

       5、下面的计划任务是在每个月2号的午夜执行(比如:2010年2月2日00:00)
            0 0 2 * * [command]

       6、下面的计划任务会在每周一的每个小时0分钟时执行一次
            0 * * * 1 [command]

       7、下面的会每小时运行3次,在0分,10分,和20分时
            0,10,20 * * * * [command]

       8、下面是用除号“/”表示每多少运行一次。

            */5 * * * * [command]    每5分钟运行一次

            00 */2 * * * [command]    每2小时运行一次 (* */2 * * * [command]  这种写法是错误的!)

        */1 * * * * root wget -O /var/log/cron.txt http://www.592.net/test.php    每分钟访问网站某PHP脚本一次,检查是否每分钟自动运行了PHP,可以查看 var/log/cron.txt文件,看下是否有网站PHP返回的内容就可以了!

       9、还可以用“-”表示一个范围,如下表示5到10点的每个整点运行一次
            0 5-10 * * * [command]

       10、另外还有一个特殊的时间关键字“@reboot”,就是每次重启服务器时运行计划任务
            @reboot [command]

     

    设定和管理计划任务
        编辑Crontab,来设定计划任务。使用下面的命令,会在vi 里打开crontab的内容以供编辑:
    crontab -e

    如果你只想看看,不需要编辑,可以使用以下的命令
    crontab -l

    要删除crontab的内容,就是删除所有的计划任务,可以这样:
    crontab -r

     

        cron是个linux下的定时执行工具,能在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但他不自动起来,能用以下的方法启动、关闭这个服务:


    编辑/etc/crontab 文件配置cron

      cron服务每分钟不仅要读一次 /var/spool/cron 内的所有文件,还需要读一次 /etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
      SHELL=/bin/bash
      PATH=/sbin:/bin:/usr/sbin:/usr/bin
      MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
      HOME=/ //使用者运行的路径,这里是根目录
      # run-parts
      01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
      02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
      22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
      42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本

      大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。


    重启命令:
    Debian
        /etc/init.d/cron restart

    Linux
        /etc/rc.d/init.d/crond restart

  • 相关阅读:
    Vue 使用Scss,深度修改局部样式
    Sublime Text 插件:批量删除空白行
    Sublime Text 3前端开发常用优秀插件介绍
    常用的sublime text 3插件(很爽哦)
    20 个强大的 Sublime Text 插件
    Java多线程之synchronized详解
    进阶Java多线程
    初识Java多线程
    分布式锁实现的正确打开方式
    分布式session实现方式
  • 原文地址:https://www.cnblogs.com/pengdonglin137/p/3625018.html
Copyright © 2020-2023  润新知