zoukankan      html  css  js  c++  java
  • linux基础命令学习(四)计划任务

    一、计划任务 crond服务简介

          linux任务调度的工作主要分为以下两类:

    *系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存

    *个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。

    这个时候可以用cron来帮助系统进行任务调度。cron可以根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。

          crond服务通过shellLinux/Unix下的crontab(计划任务控制)的方式实现。cron是计划任务的称呼,crond是后台进程,而crontab则是定制好的计划任务表。cron 这个名字来自 “chronos”,一个古希腊语时间的意思。crond进程每分种会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

    要使用 crond服务,你必须安装了vixie-cron RPM 软件包,而且必须在运行crond服务。要判定该软件包是否已安装,使用rpm -q vixie-cron命令。要判定该服务是否在运行,使用 /sbin/service crond status 命令。

    crond服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

    /sbin/service crond start //启动服务

      /sbin/service crond stop //关闭服务

      /sbin/service crond restart //重启服务

      /sbin/service crond reload //重新载入配置

          你也可以让这个服务在系统启动的时候自动启动,只需要在/etc/rc.d/rc.local这个脚本的末尾加上:

          /sbin/service crond start

    2.2 crond服务的使用

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

      crontab -u //设定某个用户的cron服务,一般这个参数只允许root使用

      crontab -l //列出某个用户cron服务的详细内容

    crontab -r //删除某个用户的cron服务

    注意:如果有多条计划任务crontab -r会删除用户所有的计划,如果你只想删除其中一条计划任务,请使用crontab -e 命令或者直接编辑/var/spool/cron/root文件。

      crontab -e //编辑某个用户的cron服务

           现举例说明:

      # crontab -u root –l      //root查看自己的cron设置

      # crontab -u fred –r     // root想删除fredcron设置

      # crontab -u root –e     //编辑rootcrontab文件

    crontab -e命令编辑的是/var/spool/cron下对应用户的cron文件

    我们也可以直接修改/etc/crontab文件,crontab文件有自己的格式,具体如下:

           Minute  Hour   Day    Month   Dayofweek   command

           分钟       小时                       天每星期        命令

    每个字段代表的含义如下:

           Minute             每个小时的第几分钟执行该任务

           Hour               每天的第几个小时执行该任务

           Day                 每月的第几天执行该任务

           Month             每年的第几个月执行该任务

           DayOfWeek     每周的第几天执行该任务

           Command       指定要执行的程序 

    举例如下:

    5         *       *           *     *     ls    //指定每小时的第5分钟执行一次ls命令

    30      5       *           *     *     ls    //指定每天的 5:30 执行ls命令

    30      7       8           *     *     ls    //指定每月8号的730分执行ls命令

    30      5       8           6     *     ls    //指定每年的68530执行ls命令

    30      6       *            *     0     ls    //指定每星期日的6:30执行ls命令

    注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等

    30     3     10,20     *     *     ls     //每月10号及20号的330执行ls命令

    注:“,”用来连接多个不连续的时段

    25     8-11    *       *     *     ls     //每天8-11点的第25分钟执行ls命令

    注:“-”用来连接连续的时段

    */15   *       *       *     *     ls     //每15分钟执行一次ls命令(即每个小时的第0 15 30 45 60分钟执行ls命令)

    30     6     */10    *     *     ls  //每个月中,每隔106:30执行一次ls命令(即每月的1112131日是的630执行一次ls命令)

    50     7      *        *     *     root run-parts /etc/cron.daily   //每天750root 身份执行/etc/cron.daily目录中的所有可执行脚本

    注:run-parts参数表示,执行后面目录中的所有可执行文件,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了

    30     5      *        *     *     ls >/jp/test 2>&1   //每天530执行ls命令,并把结果输出到/jp/test文件中

    注:2>&1 表示执行结果及错误信息

    记住几个特殊符号的含义:

    "*"代表取值范围内的数字,

    "/"代表"",

    "-"代表从某个数字到某个数字,

    ","分开几个离散的数字

    chkconfig --list crond 查询crond服务的运行级信息

    chkconfig --level 2345 crond 设置crond服务的运行级信息

    等级0表示:表示关机
          等级1表示:单用户模式
          等级2表示:无网络连接的多用户命令行模式
          等级3表示:有网络连接的多用户命令行模式
          等级4表示:不可用
          等级5表示:带图形界面的多用户模式
          等级6表示:重新启动

    文件在 /etc/inittab

  • 相关阅读:
    小学生需要不断练习的四则运算题,在编程者的手上竟然会变成。。。
    在学习紧张的时候不如放松下来听听歌曲练练单词
    3.基础语法(变量,字符转义和注释)
    .NET基础
    初学.NET
    第七次实验作业
    自我介绍
    第七次实验总结
    第二次实验总结
    实验作业总结
  • 原文地址:https://www.cnblogs.com/lovefendi/p/3730016.html
Copyright © 2011-2022 走看看