任务计划

                      Linux任务计划

一、任务计划

    1)未来的某一个时间点执行一次某任务:atbatch

    2)周期性运行某任务

二、at 命令使用

    1注意:要执行at时候,必须有atd这个服务的支持才行,在某些新版的destributionatd默认是没有启动的。不过我们的CentOS默认是启动的

        启动方法:~]# /etc/init.d/atd restart

        设置开机时启动这个服务:~]# chkconfig atd on

2)我们使用at这个命令来生成所需要运行的工作,并将这个工作以文本文件的方式写入/var/spool/at目录内,该工作便能等待atd这个服务的 取用与执行了。

3)我们可以利用/etc/at.allow/etc/at.deny这两个文件进行at的使用限制

      /etc/at.allow:写在这个文件中的用户才可以使用at

      /etc/at.deny:写在这个文件中的用户不可以使用at

      以上两个文件都没有,则表示只有root用户才可以使用

(4)at [OPTION]… TIME

         TIME:表示法

      AHH:MM [YYYY-MM]

      B、模糊时间表示

         noon   midnight   teatime 、、、

         tomorrow

         now+#{minutes,hours,days, OR weeks}

    常用选项:

        -l: 查看作业队列。相当于 atq

        -f/path/to/somefile 从指定文件中读取作业任务,而不在交互式输入

        -d:删除制定的业务,相当于atrm

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

        -q QUEUE:指明队列

    结束任务编辑用Ctrl+d

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

 5执行方式:
            1)交互式

     2)输入重定向

     3) at –f 文件

 (6)示例:

       创建任务

        任务计划         

      查看任务

       任务计划

       、、、

       任务计划

 注意:任务计划

          数字“2”表示任务队列号

 (7)取消任务

       任务计划

 

三、batch 命令

      会让系统自动选择在系统资源比较闲的时间去执行指定的任务

            at命令使用一样

            任务计划 

 

四、周期性任务计划:cron

    1cron执行的每一项工作都会被记录在/var/log/cron这个日志文件中。

    2 cronie: 主程序包,提供crond守护进程及相关辅助工具
             cronie-anacron cronie的补充程序,用于监控cronie任务执行状况,如cron中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务
             crontabs:包含CentOS提供系统维护任务
    3)确保crond守护进程(daemon) 处于运行状态:

     查看:

        CentOS 7:

                sysenctl status crond service

                状态:Acitive:Active(running…)

        CentOS 6:

               service crond status

                状态:……..is running

     4crond任务分两种:

          1)、系统crond任务:主要实现系统自身的维护

              手动编写/etc/crontab文件

          2)、用户crond任务:

              要使用crontab命令

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

五、系统cron的配置格式:cat /etc/crontab

     1、配置文件

        任务计划

        一共7个字段

 注意:(1)、每一行定义一个周期性任务

          (2)、各个之间用空格隔开

          (3)、此处的环境变量不同于用户登录后获取的环境变量,因此,建议命令使用绝对路径,或者自定义PATH环境变量

          (4)、各个字段表示什么意思:

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

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

                 3command to executed:什么任务

2、示例:

  任务计划    

表示指定用户zq每五分钟用ps命令查看进程信息

  

六、用户cron的任务

    1、配置文件:/var/spool/cron/usernameuaername表示一个用户名)

       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任务,共六个字段

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

3)、邮件发送给当前用户

    2crontab   命令

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

       1)选项:

         -e :编辑任务

         -l :列出所有任务

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

         -i :在使用-r选项时提示用户交互

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

     3、示例:

         (1)使用 crontab -e 进入编辑页面,进行任务制定

                任务计划  

         (2)查看任务

                任务计划

           (3)移除任务

                 任务计划

     注意:

      1)、运行结果以邮件形式通知给当前用户; 如果拒绝接收邮件

          1)、COMMAND > /dev/null

          2)、COMMAND &> /dev/null

      2)、定义COMMAND时候,如果命令需要用到%,这时候需要对其转义;但放置于单引号中的%不用转义

 七、周期性任务时间表示法:

       1、特定值。

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

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

       2*

            给定时间点上有效取值范围内的所有制:表示 “每、、、”

          示例:

            1)、3****:每小时执行一次,每小时的第三分钟

            2)、34**5:每周执行一次,每周五的四点三分

            3)、567**:每月执行一次,每月七号六点五分

            4)、78910*:每年执行一次,每年的十月九号八点七分

       3、离散取值:

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

                 ###

           示例:

            5)、98**3,7:每周三和周日的八点九分

            6)、08,20**3,7:每周三和周日的八点零分和二十点零分

       4、连续取值方式

            在给定的时间点上使用’连接开头和结束

                 #-#

           示例:

             7):0 9-18 * * 1-5:工作时间上的每个小时

       5、在指定时间上,定义步进长度:/

            */#

            /#:即步长

          示例:

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

 

   注意

         1、制定的时间点上不能被步长整除时候,其意义将不复存在。  

         2、最小时间单位为“分钟”,想要完成“秒”级别的任务就得需要额外其它机制

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

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

(0)
zqzq
上一篇 2017-05-14 20:37
下一篇 2017-05-14 22:19

相关推荐

  • N22-妙手-第一周博客作业

           描述计算机的组成及其功能 1946年冯诺依曼提出冯 诺依曼结构,也称普林斯顿结构,即一种将程序指令存储器和数据存储器合并在一起的存储器结构。根据他的结构,计算机组成是: (1)运算器:负责数据的算术运算和逻辑运算 (2)控制器:  负责对程序信息和数据进行分析,控制并协调其输…

    Linux干货 2016-08-15
  • IP地址之IPv6

    一、IPv6概述   目前使用的IP地址都是IPv4版本,之所以开发出IPv6版本主要是基于以下原因:     1、IPv4地址空间不足,分配不合理;     2、IPv4头部太过于复杂;     3、使用IPv4使得路由器及主机配置复杂;     4、对于IPv4重新…

    Linux干货 2016-01-13
  • N25期第四周作业

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 cp -r /etc/skel /home/tuser1 chmod -R go= /home/tuser1 2.编辑/etc/group文件,添加组hadoop echo “hadoop:x:1080” >> /…

    Linux干货 2016-12-26
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; %s/^([[:space:]]{1,}.*)/#\1/s 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行…

    Linux干货 2016-08-10
  • shell脚本编程之一

    shell脚本编程之一 shell脚本基础 shell脚本是包含一些命令或声明,并符合一定格式的文本文件 格式要求:首行shebang机制 #!/bin/bash #!/usr/bin/python #!/usr/bin/perl shell脚本的用途有: 自动化常用命令 执行系统管理和故障排除 常见简单的应用程序 处理文本或文件 创建shell脚本 第一步…

    Linux干货 2016-08-18
  • Linux 网络管理

    Linux 网络管理 第一篇:计算机网络基础: 一、计算机网络: 1.TCP/IP:协议栈(使用中的模型)     ISO(国际标准化组织):OSI(开放系统互联基本参考模型),学习中的模型。           1)各层之间的相关协议和单位:     互联网…

    Linux干货 2016-09-06