任务计划使用方法

概述

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

    任务计划分为两种:

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

相关推荐

  • N22+张zhangzhang+第6周博客作业

    请详细总结vim编辑器的使用并完成以下练习题   vim编辑器是vi编辑器的增强版,是全屏文本编辑器,用于完成文本的输出、删除、查找、替换、块操作等众多功能。一般分三种模式:编辑模式、输入模式、末行模式。 vim各种按键的功能 编辑模式: 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以…

    Linux干货 2016-09-20
  • Linux哲学思想和常用命令的用法

    Linux哲学思想:    (1)、一切皆文件:               不仅普通的文件,目录、字符设备、块设备、套接字等在Unix、Linux中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套…

    2017-07-02
  • linux 哲学思想

    一切皆文件:普通文件,目录、字符设备、块设备、套接字在linux中都是以文件被对待;虽然类型不通,但是对其提供得却都是统一套操作界面。 由众多的单一程序,一个程序只实现一个功能,多个程序组合完成负责任务。单一的程序可以保持高效的执行效率,对于复杂的功能linux通过许多简单程序组合等方式实现,在保证简单程序的高效性同时,复杂的程序也必然是高效性的。 文本文件…

    Linux干货 2017-08-19
  • 恐怖的C++语言

    Linus曾经(2007年9月)在新闻组gmane.comp.version-control.git里和一个微软的工程师(Dmitry Kakurin)争执过用C还是用C++,当时的那个微软的工程师主要是在做Git的Windows版,但他却发现Git的源码居然是C语言写的,而不是C++,于是他(Dmitry Kakurin)在Linux社区里发贴表示对Lin…

    Linux干货 2015-04-03
  • 如何在微软云上搭建mysql主从

    大家好: 今天我分享下在生产环境的微软云服务器上如何搭建mysql主从: 环境如下图: 我把cnux06-testing设为Mysql主服务器,暂时没需求的cnux04-web1db2设为Mysql从服务器 1–首先要在master上开启binlog日志功能并使主从库中的 server-id保持不同 操作步骤如下: A: 先查看mysql的主目录…

    Linux干货 2017-02-14
  • 几个有意思的小脚本

    ①.用脚本画一个圣诞树 效果 ②.用脚本画一个类似国际象棋的棋盘 半成品效果 再像这样在下面多写几个循环,就可以了,我这个方法太笨,全写完要截图的太多,就放一部分意思下 ③.编写一个脚本,打印出九九乘法表 效果 ④.编写一个脚本,可接收一个 1-7 的数字作为参数,用 if 和 case 两种方法实现根据输入的数字输出对应星期的英文 用if的方法 用case…

    2017-05-11

评论列表(2条)

  • stanley
    stanley 2015-04-02 22:39

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

    • petmaster
      petmaster 2015-04-03 00:11

      @stanley谢谢!