任务计划使用方法

概述

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

    任务计划分为两种:

        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)
上一篇 2015-03-26 14:59
下一篇 2015-03-27 13:19

相关推荐

  • Linux磁盘管理 and 文件系统管理

     磁盘管理     主要有以下几部分:        磁盘结构        分区类型        管理分区        管理文件系统     &…

    Linux干货 2016-09-01
  • 马哥教育网络班21期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@localhost ~]#mke2fs -t ext4 -b 2048 -m 2 -L &qu…

    Linux干货 2016-08-15
  • grub文件文件修复

    首先我们先破坏一下grub文件 这里我们先查看一下电脑是哪块硬盘启动的 这里我们就直接破坏硬盘的二进制数据,以达到grub的破坏。 要记住我们只能破坏前446字节,也就是bootloader。后面64字节是分区表。 我们可以查看一下前512字节的二进制文件 hexdump -C -n 512 /dev/sda 先破坏/boot/grub/stage1的前44…

    2017-07-28
  • Linux发行版概述

    Linux发行版概述 Linux发行版有数百种之多,最主流的三个分支为Debain、Slackware、RedHat Debain Debain是三大主流发行版中唯一由社区维护的版本,无商业版本,相对较为轻巧,对使用者的技术要求较高 * Ubuntu、Knopix为Debian的主要子分支,其中Knopix是以安全著称的 Slackware(SUSE) SU…

    Linux干货 2017-07-02
  • 浅谈筛选日志中的IP地址信息

    作为运维人员,经常会需要会对日志中的某些重要信息进行筛选,比如说ip等参数。 案例一:筛选出IP地址信息 日志信息如下: [root@C67-X64-A1 hanghang]# cat test.txt  Jul 13 08:13:09 localhost sshd[14678]…

    系统运维 2016-07-22
  • 总考十分的学习宣言

    目标:按照学习线路图完成所有视频的学习,完成每一次的博客作业及云学堂考试,成功转型互联网运维。 宣言:我一定要转型互联网运维工程师,并在这个领域不断坚持耕耘下去,成为行业的专家,拿高薪,挣so much money,可以有钱去看看世界,去台湾环岛,去日本爬天空树,去北欧看极光,去南极看企鹅,去看盐湖和大象,去非洲看动物迁徙。一生的时间是有限的,在有限的时间里…

    Linux干货 2016-10-24

评论列表(2条)

  • stanley
    stanley 2015-04-02 22:39

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

    • petmaster
      petmaster 2015-04-03 00:11

      @stanley谢谢!