Linux任务计划

Linux任务计划,周期性任务执行

        未来的某时间点执行一次某任务:at, batch

         周期性运行某任务:crontab

                 执行结果:

             ~]# netstat -tnlp

             ~]# ss -tnl

     本地电子邮件服务:

             smtp: simple mail transmission protocol

             pop3: Post Office Procotol

             imap4: Internet Mail Access Procotol

             mail命令:

             mailx – send and receive Internet mail

             MUA:Mail User Agent,用户收发邮件的工具程序;

             mailx [-s 'SUBJCT'] username[@hostname]

     邮件正文的生成: 

            (1) 交互式输入:单独成行可用标识正文结束;Ctrl+d提交亦可;

            (2)通过输入重定向;

            (3)通过管道:

        at 命令:

             at [OPTION]….TIME

             TIME:

              HH:MM [YYYY-mm-dd]

              noon,  midnight, teatime

              tomorrow 

               now+# 

              UNIT:minutes, hours,days,or weeks

               at的作业队列,用单个字母表示;默认都使用a队列;

        常用选项:

           -l: 查看作业,相当于atq

           -f: /PATH/FROM/SOMEFILE:从指定文件中读取作业任务,而不用再交互式输入;

           -d: 删除指定的作业,相当于atrm;  

           -c: 查看指定作业的具体内容;

           -q: QUEUE:指明队列;

          注意:作业执行的结果是以邮件发送提交作业的用户

               batch命令:

               batch命令会让系统自行选择在系统资源交空闲的时间去执行指定的任务;

          周期性任务计划:cron

             服务程序:

             cronie:主程序包,提供了crond守护进程及相关辅助工具;

             确保crond 守护进程(daemon)处于运行状态:

         Centos 7 :

              systemctl satus crond.service

              Active:active (running)….

        Centos 6 :

             service crond status

              …is running

       向crond提交作业的方式不同于at,它需要使用专用的配置文件,次文件有固定格式,不建议使使用文本编辑器直直接编辑此文件;要使用crontab命令;

       cron任务分为两类:

          系统cron任务:主要用于实现系统自身的维护;

            用cron任务:/etc/cron/tab

            SHELL=/bin/bash

            PATH=/sbin:/bin:/usr/sbin:/usr/bin

            MAILTO=root

            HOME=/

            # For details see man 4 crontabs

            # Example of job definition:

            # .—————- minute (0 – 59)

            # |  .————- hour (0 – 23)

            # |  |  .———- day of month (1 – 31)

            # |  |  |  .——- month (1 – 12) OR jan,feb,mar,apr …

            # |  |  |  |  .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

            # |  |  |  |  |

            # *  *  *  *  * user-name command to be executed

    注意:(1)每一行定义一个周期性任务;共七个字段

              *  *  *  *  *:定义周期性时间

              user -name:运行任务的用户身份

         (2)此时的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝路径,或者自定义PATH环境变量;

         (3)执行结合邮件发送给AMAILTO指定的用户;


    用户cron的配置格式:/var/spool/cron/USERNAME

          SHELL=/bin/bash

          PATH=/sbin:/bin:/usr/sbin:/usr/bin

          MAILTO=root

          HOME=/

          # For details see man 4 crontabs

          # Example of job definition:

          # .—————- minute (0 – 59)

          # |  .————- hour (0 – 23)

          # |  |  .———- day of month (1 – 31)

          # |  |  |  .——- month (1 – 12) OR jan,feb,mar,apr

          # |  |  |  |  .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

          # |  |  |  |  |

          # *  *  *  *   command to be executed

   注意:

      (1)每行第那样一个cron任务,共6个字段;

      (2)  此时的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝路径,或者自定义PATH环境变量;

      (3)邮件发送给当前用户;

  时间表示法:

      (1)特定值:

           给定时间点的有效取值范围内的值:

           注意:day of week和day of month 一般不同时使用:

      (2)*

          给定时间点上有效取值范围内的所有制;表 “每…"

      (3)离散取值: ,

          在时间点上使用逗号分隔的多个值;

          #,#,#,

      (4)连续取值: –

          在时间点上使用- 连接开头和结束

          #-#

      (5)在指定是几点上,定义步长;

          /#: #即步长:

          */2

 注意:1、指定的时间点不能被步长整除时,其意义将不符存在;

       2、最小时间单位为”分钟“,想完成”秒“级任务,得需要额外借助于其它

         机制;定义成每分钟任务;而在利用脚本实现在每分钟之内,循环执行多次;

      示例:

     (1)3****:每小时执行一次,每小时第3分钟;

     (2)34**5:每周执行一次:每周5的4点3分;

     (3)5 6 7 * *:  每月执行一次; 第  月的7号的6点5分;

     (4)7 8 9 10 *:每年执行一次, 每年的10月9号8点7分;

     (5)9 8 * * 3,7 :每周三和周日;

     (6)0 8,20 * *3,7:

     (7)0 9-18 * * 1-5:

     (8)*/5 * * * *: 每五分钟执行一次某任务;

     (9)*/7

                                  

 crontab命令:

      crontab [-u user] file

      crontab [-u user] [-l | -r | -e] [-i] [-s]

      -e: 编辑任务;

      -l: 列出所有任务

      -r: 移除所有任务:即删除/var/spool/cron/RSERNAME文件:

      -i: 在使用-r 选项移除所有任务是提示用户确认;

      -u: user: root用户可为指定用户管理cron任务

注意:运行结果一邮件通知给当前用户;如果拒绝解释邮件:

    (1):COMMAND>/dev/null

    (2):COMMAND &/dev/null

注意:定义COMMAND时,如果命令需要用到%,需要对其转义;但放置于单引号中的%不用转义亦可;

思考:某任务在指定的时间因关机未能执行,下次开机会不会自动执行?

      不会!

 如果期望某时间因故未能按时执行,下次开机后无论是否到了相应时间点都要执行一次,可使用anacron实现

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

(0)
shadowshadow
上一篇 2016-12-31
下一篇 2016-12-31

相关推荐

  • 马哥教育网络班19期第一周课程练习

    1、描述计算机的组成及其功能。 从大体上计算机是由cpu、内存、主板、I/O设备、存储设备组成 cpu的功能就好像人的大脑,控制身体的。严格意义上是用来解释计算机指令以及处理软件中的数据的。 内存的功能就好像人的大脑记忆区、来存放眼睛看到的世界。严格意义上是用于暂时存放cpu中的运算数据,以及与硬盘等外部存储器交换的数据 主板的功能就好像人的身体,来链接身体…

    Linux干货 2016-06-18
  • Linux文本处理工具

    Linux文本处理工具 文件内容查看的工具:cat tac rev cat [options] [filename]     -E //显示行结束符     -n //对显示出的行编号     -A //显示所有控制符     -b //非空行编号     -S //压缩连续的空行为一行 tac //用于将文件已行为单位的反序输出,即第一行最后显示,最后一行…

    Linux干货 2017-09-09
  • 第二周博客作业

    1.linux上的文件管理类命令都用哪些,其常用的使用方法及其相关示例演示。 常用命令有:cp, mv, rm 复制命令:cp cp [OPTION]… [-T] SOURCE DEST                 cp [OPTION]… SOURC…

    Linux干货 2016-06-23
  • 文件搜索之find的使用

    一.find介绍:   find是Linxu中一个十分常用的文件查找工具,其工作原理是通过遍历启起始路径下文件层级结构完成的,其特点是查找速度慢,能做到实时查找和精确查找。 二.使用方法: find  start_path search_conditions  action 1.statr_path:所要查找的文件的起始位置,默…

    Linux干货 2016-11-01
  • 曲径通幽处,禅房花木深—-bash禅意脚本

    编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 编程基本概念 编程逻辑处理方式: 顺序执行 循环执行 选择执行 shell编程:过程式、解释执行 编程语言的基本结构: 数据存储:变量、数组 表达式: a + b 语句:if shell脚本基础 s…

    Linux干货 2016-08-12
  • 基于ssl的mysql的主从复制

    实验环境: system:CentOS Linux release 7.2.1511 (Core) mariadb server:mariadb-server-5.5.44-2.el7.centos.x86_64 master server:10.1.51.20/16 slave serv…

    2016-11-22

评论列表(1条)

  • luoweiro
    luoweiro 2017-02-23 08:06

    给你出一题,每天晚上的02:10:10秒执行一个任务如何写?