任务计划使用方法

概述

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

    任务计划分为两种:

        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

相关推荐

  • http协议

    ##socket套接字– 套接字,进程间通信IPC的一种实现,允许位于不同主机(或同一主机)上不同进程之间进行通信和数据交换。– socketAPI:封装了内核中所提供的socket通信相关的系统调用– socketDomain:根据其所使用的地址– AF_INET:Address Family,Ipv4&#8…

    Linux干货 2017-12-06
  • MySQL/MariaDB数据库备份与恢复

    前言 数据库一般存放着企业最为重要的数据,它关系到企业业务能否正常运转,数据库服务器总会遇到一些不可抗拒因素,导致数据丢失或损坏,而数据库备份可以帮助我们避免由于各种原因造成的数据丢失或着数据库的其他问题。本文将讲解MySQL/MariaDB数据库的几种备份方法。 基础知识 备份类型 完全备份:备份整个数据库 部分备份:仅备份其中的一张表或多张表 增量备份:…

    系统运维 2015-05-23
  • Bash的基础特性之命令执行状态返回值和命令行展开

    Bash的基础特性之命令的执行状态 Linux的命令执行结果状态有两种,分别为:1、成功2、失败bash使用特殊变量 $? 保存最近一条命令的执行状态结果使用echo $? 命令来查看命令执行状态返回值:0:成功1-255:失败 示例:         [root@localho…

    Linux干货 2016-11-04
  • 马哥教育网络班21期+第一周课程练习

    一、计算机的组成及其功能 自上个世纪40年代开始截止到目前,我们所有的计算机包括手持的智能终端设备,它们整个组织体系设备都是遵循冯诺依曼体系结构。 现代计算机设备的组成部分: 运算器、控制器、存储器、输入设备、输出设备 控制器:控制器是整个计算机的枢纽,一般是控制计算机整个部件之间协调的,比如运算器要想运算的话,首先得从存储器中取出数值。或者输入设备输入数。…

    Linux干货 2016-07-07
  • BIND 配置DNS服务器以及子域授权

    1、安装bind      [root@www ~]# yum -y install bind 2、查看安装生成的文件      [root@www ~]# rpm -ql bind | less 3、程序路径     /var/named 4、配置…

    Linux干货 2016-03-22
  • Linux基础命令语法

    Linux基础命令语法

    Linux干货 2018-03-11

评论列表(2条)

  • stanley
    stanley 2015-04-02 22:39

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

    • petmaster
      petmaster 2015-04-03 00:11

      @stanley谢谢!