任务计划使用方法

概述

    任务计划其实就是针对未来的某一刻或者是某一周期内设置要执行的工作;

    任务计划分为两种:

        1、一次性任务:在指定的未来的某个时间点仅执行一次任务;

            命令:at batch

        2、周期性任务:根据设置的时间循环工作。

            命令:crontab

一次性工作调度

    at命令

        使用at命令时,首先其服务atd必须开启,否则无法使用此命令。

        1.png

       语法格式: at [-ldc] TIME 

        下面举例来说明at命令的用法:

        1、使用at命令来设置任务:

            2.png

           上面的命令表示:从现在起2分钟后执行ls /tmp命令,使用快捷键Ctrl+d来结束命令输入。

           at命令并不会把执行结果输出到屏幕上,而是默认给任务设置者发送邮件;每个用户被创建时系统都会默认为其创建邮箱,可以通过变量$MAIL来查看邮箱的路径,以root用户为例:

           可以看到root用户的邮箱路径

            3.png

           查看邮箱最下面的内容即为ls /tmp的结果

           4.png          

            在上面的at命令中使用 now + 2 minutes来指定时间,下面详细说明时间的表示方法:

                绝对时间:

                    HH:MM:表示在今日的HH:MM时执行任务,若设置任务时已经超过了此时间,则为明天的HH:MM执行。如:02:00。

                    HH:MM YYYY-MM-DD:表示在某年某月某日的HH:MM执行任务。如:02:00 2015-03-25。

                    HH:MM[am|pm] [Month] [Date]:表示某月某日的HH:MM执行任务。

                相对时间:

                    now + # [minutes|hours|days|weeks]:表示从现在开始再过多少时间执行任务。

                模糊时间:

                    noon:相当于12:00

                    midnight:相当于00:00

                    teatime:相当于4:00 pm

                    tomorrow:明天         

        2、查询已经设置的at任务

                5.png

                第一列为任务的编号,之所以是5和6是因为之前的at任务已经执行完成;

                第二列是任务执行的时间;

                最后一列表示任务的执行者为root。

                此命令相当于命令atq。

        3、删除已经设置的at任务

                6.png

                删除编号为5的at任务。

                此命令相当于命令atrm。

         4、查看at任务的工作内容

               7.png

            使用-c选项可以输出任务的工作脚本,其实此参数就是将/var/spool/at/目录中与任务相对应的文件显示了出来;使用at命令设置好的任务都会以/var/spool/at/目录中自动生成一个脚本文件,如下图:

                8.png

                9.png

                可以看到文件中a0000后的数字与任务编号相对应。

        5、at的权限

            at使用/etc/at.allow和/etc/at.allow两个文件来控制权限。

            1、写在/etc/at.allow文件中的用户可以才能使用at; 

            2、如果/etc/at.allow不存在,查找/etc/at.deny文件,如果写在/etc/at.deny文件中则不能使用at,否则就有使用at的权限;

            3、如果两个文件都存在,则/etc/at.allow文件生效;

            3、如果两个文件都不存在,就只有root可以使用at命令。

    batch命令

        功能与at相同,但不需要指定时间,自动选择系统空闲时运行计划任务。

周期性工作调度

    crontab命令

        使用此命令必须确保crond服务是开启状态。

        10.png

        语法格式:crontab [-u username] [-l|-e|-r]

            -e:编辑crontab的工作内容;

            -u:只有root用户才能使用此参数,帮助其它用户建立任务;

            -l:查阅crontab的工作内容;

            -r:删除crontab的所有工作内容。

       1、编辑cron任务

        在第一次使用crontab -e命令进行编辑工作时,会发现这是一个空的文件,没有任何文字可供参考,那么任务怎么写呢?

        系统提供了crontab的配置文件,打开/etc/crontab文件可以看到格式的说明:

            11.png

            文件上面的部分是定义的环境变量,这些环境变量已经在系统中都定义可以正常使用了,为什么还要在配置文件中再定义一次呢?

            由于crontab定义的是周期性任务,在运行任务时并不能保证任务发起者处于系统登录状态,如果用户退出登录后,其对应的环境变量也被相应的取消了;那么任务运行的环境($SHELL),命令查找的路径($PATH)等信息就都无法读取,会造成任务的执行失败;在任务运行前先从配置文件中读取环境变量,就可以避免此问题的发生了。

            文件下面的部分是crontab任务的格式说明,我们根据配置文件的信息来说明crontab任务的格式。

            cron任务分为两类:

                1、系统cron任务

                    格式:分钟 小时 周几 用户 任务

                2、用户cron任务

                    格式:分钟 小时 周几 任务

                  时间的有效取值范围:                  

                    分钟:0-59

                    小时:0-23

                    天:  1-31

                    月:  1-12

                    周:  0-707都表示周日

                时间通配表示:

                    * :对应时间的所有有效取值

                    ,:离散时间点, 1040 * * * * 每小时第10分钟和第40分钟

                    – :连续时间     10 02 * * 1-5  每周一到周五

                    / :对应取值范围内每多久一次   */3 * * * *   3分钟

                例如:0 5 * * 1  表示每周一的5点钟;

                      * 5 * * 1  表示每周一的5:00-5:59的每一分钟

                

                crontab的执行结果也会以邮件的形式发送到任务发起者的邮箱中。           

            注意:crontab命令使用-e选项进行编辑时,实际上就是编辑/var/spool/cron/USERNAME(当前用户名)文件,以root为例:

            5.png

            但不要直接编辑此文件进行任务订制,因为使用-e选项可以自动识别语法错误,而使用vim直接打开文件进行编辑则没有此功能。

        2、查看cron任务

            1.png

        3、为其它用户定义cron任务         

            2.png

            3.png

        4、删除所有的cron任务

            4.png

            如果想要只删除某一条的任务,使用-e选项手动删除即可。

        5、cron的权限

            与at一样,cron也使用文件来定义用户的使用权限;

            /etc/cron.allow :写入此文件的用户可以使用crontab,没有写入的用户则不可使用;

            /etc/cron.deny :写入此文件的用户不可以使用crontab,没有写入的用户则可以使用;

            /etc/cron.allow比/etc/cron.deny的优先级要高,同一账号在两个文件中同时出现时,以/etc/cron.allow为准。

        6、日志功能

            cron执行的每一项任务都会被记录到/var/log/cron这个日志文件。

            6.png

    anacron命令        

        检查有没有过去一个有效周期未曾执行的任务,如果有,在开机后的指定时间点执行一次;

        查看anacrontab配置文件

            8.png

         配置文件中任务的四个值的含义:

             period in days      delay in minutes    job-identifier    command

            过去没执行的天数    开机后第多少分钟数     工作名称         任务

         此命令在生产环境中基本用不到,此处不再进一步说明。

    

 

原创文章,作者:petmaster,如若转载,请注明出处:http://www.178linux.com/1522

(0)
petmasterpetmaster
上一篇 2015-03-26
下一篇 2015-03-27

相关推荐

  • Linux终端类型

    前言 终端是一个很重要的外设,用过终端设备的人都知道如果设备类型不对就会有乱字符,也可用仿真终端软件如netterm试验一下,Linux的终端信息放在 /usr/share/terminfo下,在这个目录的子目录v下就有许多的如vt100,vt102,vt200等,看一下就知道了。 终端类型的区别与概念 1、 pty(虚拟终端): 但是如果我们远程telne…

    Linux干货 2016-10-14
  • 第二周学习总结

    写在最前 通过上一周对计算机系统、Linux发展的学习,我们认识到了Linux是一个一切皆文件的内核系统。那么怎样去操作系统上的各文件来达到你想要的目的呢?今天的总结就是帮助我们更快的达成目标。 文件管理类命令的分类 对于这类命令主要分为两类: 操作类:touch、cp、mv 查看类:cat、tac、head、tail、less、more touch 功能描…

    2017-12-16
  • LVS

        Linux虚拟服务器(LVS)是基于Linux内核的操作系统的负载平衡软件。     LVS提供了良好的可扩展性,可靠性和可服务性。 LVS项目的主要工作是开发先进的IP 负载平衡软件(IPVS),应用级负载平衡软件(KTCPVS)和集群管理组件。 IPVS:在…

    Linux干货 2017-08-21
  • HTTP详解(1)-工作原理

    1. HTTP简介          HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输…

    Linux干货 2015-04-04
  • N22-第2周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 cd、pwd、ls、alias、cat、more、less、tail、cut、wc、touch、mv、cp、rm pwd:用户当前所在目录 [xuc@localhost ~]$ pwd /home/xuc cd:切换目录  cd  [/PATH…

    Linux干货 2016-08-22
  • Linux用户与权限管理

    由于Linux是多用户、多任务系统,出于一些需要,当我们创建的文件希望对一部分用户开放,对一部分用户隐藏的时候应该怎么办呢?这样的话,就需要涉及到Linux系统中对用户以及对文件权限的管理。 一、相关文件 在Linux中,一切配置文件都是以文本文档的方式来保存的,同样用户的信息也保存在系统的一些文件中,其位置为/etc/passwd。此文件只有root用户具…

    Linux干货 2016-08-05

评论列表(2条)

  • stanley
    stanley 2015-04-02 22:39

    参考其它优秀博文优化下现有的格式,有些技巧会让自己的博文更优美

    • petmaster
      petmaster 2015-04-03 00:11

      @stanley谢谢!