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

相关推荐

  • linux系统网络配置基础实例(网卡别名、bong、路由)

    概述:本文主要介绍网卡别名(一张网卡多个IP)、bonging(多张网卡绑定一个IP)、以及路由实验 Linux网络配置基础 基本网络配置 将Linux主机接入到网络,需要配置网络相关设置。一般包括如下内容:主机名:hostname示例:临时有效 [root@centos6 ~]# hostname MyHostName [ro…

    Linux干货 2016-09-06
  • linux下的打包与压缩

    linux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tar,bzip2,xz 和gzip等,我们来说说它们的用法。 先来说bzip2。bunzip2和bzcat可以由bzip2指定选项来执行同样的结果,这里只介绍bzip2的用法。使用bzip2这个工具创建的文件以.bz2,.bz,.tbz,.tar.bz2或者…

    Linux干货 2017-04-16
  • 第五周作业

    查看链接:http://note.youdao.com/noteshare?id=1ed7b36aa41cbdc1154e3e5b54e43fce

    Linux干货 2016-09-19
  • Linux终端类型

    Linux中各种终端的解释 设备终端   键盘鼠标显示器 物理终端( /dev/console ) )   在Linux 系统中,计算机显示器通常被称为控制台终端(Console)。 虚拟终端(tty :teletypewriters, /dev/tty# # 为[1-6])   tty 可有n 个,Ctrl+Alt+…

    Linux干货 2016-10-13
  • 马哥教育网络班22期+第1周课程练习

    week1作业: 1.描述计算机的组成及其功能。    计算机的组成:    CPU:控制器、运算器、寄存器、CPU缓存(RAM,一级、二级、三级缓存)    控制器(Control):是整个计算机的中枢神经,其功能是对程序规 定的控制信息进行解释,根据其要求进行控制,…

    Linux干货 2016-08-15
  • N25-第二周作业

    ①Linux文件管理命令常用方法 Linux常见文件类型 -:files,常规文件 d: directory,目录文件 b: block device,块设备文件 c:character device,字符设备文件 l:symbolic link,符号链接文件 p: pipe,命名管道 s: socket,套接字文件 命令管理工具指南:cp、rm、mv 1.…

    Linux干货 2016-12-13

评论列表(1条)

  • luoweiro
    luoweiro 2017-02-23 08:06

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