• cron服务


    相对与at,cron的优点就是能够周期性的执行某个命令,at却只能执行一次,cron的后台进程名字是crond ,cron也是system V的服务,所以我们可以service crond start|stop 来启动和关闭此服务,也可以使用chkconfig或者ntsysv来选择cron服务的默认开启,这些命令在以前我们都讲过的

      命令:

      #crontab -e              编辑当前用户的cron表

    #crontab -l               查看当前用户的cron表

    #crontab -r              删除当前用户的cron进程

    #crontab -u 用户名 以某用户的身份来控制cron表

    还有个重要的知识点,就是当用户的计划任务建立后是存放在var/spool/cron这个目录

    当使用crontab -e编辑当前用户的cron表后,会出现一个vi文件,cron的格式是这样的。分成两列,左边是时间,右边是运行的命令。时间是由5个部分组成。

    例:

    * * * * *          wall hello everyone

    5个星号分别代表:minute hour day-of-month month-of-year day-of-week  ,而wall hello everyone 这是命令内容。上面的意识是每分每小时每天每月每周广播hello everyone。具体时间大家可以自己定义。如果要每两分钟发送就用*/2代替第一个*。也可以是用具体时间来表示。

    我们使用crontab -e编辑当前用户的cron表

    这里的5个星号就代表的时间和日期:

    第一个*星号代表个小时的第几分钟:minute 范围是从0-59

    第二个*星号代表每天的第几个小时:hour 范围是从0-23

    第三个*星号代表每月的第几个日:day-of-month 范围从1-31

    第四个*星号代表没年的第几个月:month-of-year 范围从1-12

    第五个*星号代表每周的星期几:day-of-week 范围从0-6,其中0表示星期日

    用户名:也就是执行程序要通过哪个用户来执行,这个一般可以省略;

    命令:执行的命令和参数。

    时程表的格式如下 :

    f1 f2 f3 f4 f5 program

    其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表 示要执行的程序。

    当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余以此类推

    当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余以此类推

    当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余以此类推

    当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余以此类推

    使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。

      例1:如果我要表示9月10日25分执行ls var/spool/cron任务怎么表示?

    25 * 10 9 *         ls var/spool/cron

    由于我没表示小时,所以就只能里面为每小时

      例2:我要在每周日,每分钟执行wall Hello redking.blog.51cto.com这个命令,时间怎么表示?

    */1 * * * 0 wall Hello redking.blog.51cto.com

    */   表示每多少分钟执行一次

      例3:每晚的21:30重启apache。

    30 21 * * * /usr/local/etc/rc.d/lighttpd restart

      例4:每月1、10、22日的4 : 45重启apache

            45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

    例5:每周六、周日的1 : 10重启apache

        10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

    例6:在每天18 : 00至23 : 00之间每隔30分钟重启apache

        0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

    例7:每一小时重启apache

        * */1 * * * /usr/local/etc/rc.d/lighttpd restart

    例8:晚上11点到早上7点之间,每隔一小时重启apache

        * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

    例9:每月的4号与每周一到周三的11点重启apache

        0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

    例10:一月一号的4点重启apache

        0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

    例11:在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup

        0 6-12/3 * 12 * /usr/bin/backup

    例12:每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"

        20 0-23/2 * * * echo "haha"

  • 相关阅读:
    svn命令
    dos 批处理删除svn目录
    Libevent 的多线程操作
    Linux Daemon 类程序
    模板函数 使用的默认void 模板报错
    配置BUG-Linux系统下ssh登陆很慢的解决办法
    Centos apache + mysql + usvn 配置svn 服务器
    Centos 7U盘安装
    mysql 常用基础
    shell 的 md5 命令
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11109424.html
Copyright © 2020-2023  润新知