计划任务管理

    Linux系统计划任务有两种:A、一次性任务;B、定时循环任务。

    一次性任务:at命令。at的安装包名字就是at,可以使用命令"yum install at"进行安装.安装完成后,启用atd服务就可以运行at命令了.运行格式为:at [option] TIME

    OPTION:

      -V 显示版本信息:
      -l:
列出指定队列中等待运行的作业;相当于atq
      -d:
删除指定的作业;相当于atrm
      -c:
查看具体作业任务
      -f /path/from/somefile:从指定的文件中读取任务(要执行的命令)
      -m:当任务被完成之后,将给用户发送邮件,即使没有标准输出
       注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

    TIME:定义出什么时候进行 at 这项任务的时间
      HH:MM [YYYY-mm-dd]
      noon, midnight, teatime
4pmtomorrow
      now+#{minutes,hours,days, OR weeks}

      HH:MM 02:00
    在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务
       HH:MM YYYY-MM-DD 04:00 2016-09-20
    规定在某年某月的某一天的特殊时刻进行该项任务
      HH:MM[am|pm] [Month] [Date]
       04pm March 17
       17:20 tomorrow
    HH:MM[am|pm] + number [minutes|hours|days|weeks]
    在某个时间点再加几个时间后才进行该项任务
       now + 5 minutes
       04pm + 3 days

    注意:选项-t也可以指定时间:at -t TIME。其格式为[[CC]YY]MMDDhhmm。

    at队列存放在/var/spool/at目录中.创建一个计划任务,2分钟后发一个广播:

blob.png

    at命令可以通过修改配置文件来指定用户有权限或者没有权限执行。配置文件为/etc/at.deny和/etc/at.allow。其中,at.allow中的用户被允许执行at命令,at.deny文件中的用户没有权限执行at命令。两个文件如果都不存在,则只有管理员才能执行at命令。如果两个文件都有,at.allow的优先级高。 

    

     定时循环任务:crontab命令,运行格式为:crontab [-u user] [-l | -r | -e]

      -l:列出当前的计划任务列表

      -r:删除当前计划任务

      -e:创建或者编辑计划任务

    使用命令"crontab -e"编辑计划任务,编辑的格式为:

blob.png

    总共7个字段:分、小时、天、月、星期、用户、命令。例如要在每个月的第一天执行一个计划任务,可以使用"crontab -e"编辑如下字段:"* * 1 * *  reboot"。然后保存。其中,"*"代表任何时刻(天,小时,分钟,月),也可以指定具体的时间,连续的时间用"-"连接(1-10),离散的数用","隔开(1,4,10),也可以使用"/#"表示每#(分钟,小时,月,天)执行一次。时间也可以使用特殊的形式:

    @reboot Run once after reboot.
    @yearly 0 0 1 1 *
    @annually 0 0 1 1 *
    @monthly 0 0 1 * *
    @weekly 0 0 * * 0
    @daily 0 0 * * *
    @hourly 0 * * * *

    编辑完成后就可以使用命令"crontab -l"命令查看:

blob.png

    该命令是让每月的第一天重启系统。当用户使用 crontab 创建工作后,该项工作会被到/var/spool/cron/里面,而且是以账号最为判别的,crontab执行的每一项工作都会被记录到 

/var/log/cron 这个日志文件中。

blob.png

     /etc/crontab这个文件是系统默认会定时执行的系统任务,crond服务会每隔一分钟读取/etc/crontab与/varspool/cron里面的内容。文件内容如下:

blob.png

          SHELL=/bin/bash:使用的shell,

         PATH=……:定义路径到变量。

         MAILTO=root:若有额外STDOUT,以 email 将数据发送给谁,可以改成你的email地址,以便接收任务的执行信息。

其中比crontab -e 命令多了一项,便是用户名称了,因为用户执行命令会以用户身份生成配置文件,而这个文件中若是填入任务的话,系统就需要指定用户的身份了。

并且其中还支持以目录来规划任务,可以将可执行文件放在一个目录中,然后再命令处填写 run-parts(有空格)然后接上目录,即可借助run-parts这个脚本的辅助,来规划目录执行了。

其中所有的输出会以email形式,发送预设的账号,所以不必要的输出可以重定向给/dev/null 避免垃圾邮件。

其中日、月、周不可同时存在,若是同时存在,系统默认执行第一个读取到的时间做循环。

  crontab的任务都是定时循环执行,若是那个时刻处于关机状态,那么任务就无法执行了,为了弥补这个问题,就有了anacron。其能够将为能运行的crontab工作在开机之后执行。

aracron也是基于crontab来运行的,因此aracron运行的时间通常有两个,一个是系统开机期间运行,一个是写入crontab 的调度之中,这样才能够在特定的时间分析系统中未运行的crontab 工作。

blob.png

           RANDOM_DELAY=45表示启动后延时时间;

           START_HOURS_RANGE=3-22表示执行的时间段

           下面的字段分别表示执行的次数、执行的延时、作业标识符、命令

           和at命令相似,它也有两个配置文件cron.deny和cron.allow,作用一样。

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

(0)
王更生王更生
上一篇 2016-11-27
下一篇 2016-11-27

相关推荐

  • N23-第二周

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。     显示指定目录下的文件列表:ls     文件查看类命令:cat,tac,head,tail,more,less     复制命令:cp,install &…

    Linux干货 2016-09-26
  • 第九周

    统计可登录shell与不能登陆shell的个数 2. 写一个脚本 3.写一个脚本    4、写一个脚本,完成如下功能 脚本能够接受一个参数。 (1) 如果参数1为quit,则显示退出脚本,并执行正常退出。 (2) 如果参数1为yes,则显示继续执行脚本。 (3) 否则,参数1为其它任意值,均执行非正常退出。    5、…

    Linux干货 2016-12-26
  • Linux初认识

    1、计算机的五大部件 CUP: CUP中包含了两大部件分别是运算器、控制器。其中运算器主要是进行数学运算、逻辑运算等各种运算的。除了两大部件以外CUP内部还有寄存器、缓存,它们是提升CUP性能的辅助性工具。 存储器: 内存RAM(Random Access Memory)。 输入设备Input: 输入设备用来下指令,提供数据等。输入设备有键盘,鼠标,麦克风等…

    Linux干货 2017-07-09
  • Linux系统的基础命令及事例讲解

    Linux操作系统是系统运维领域里逐步强大,逐步受到关注的一款开源系统,它包含里大量的命令及程序,以下是我在这一周内学到的几种命令及获取帮助命令的方法: 1  tty    tty是查看终端设备的一个命令,输入之后系统会提示如下:    /dev/pts/1   其中pts代表是在命令行接口下终端类…

    Linux干货 2016-10-30
  • rsyslog讲解

    rsyslog: 日志:历史日志 syslog(服务):syslogd(系统日志)、klogd(内核日志) c/s架构;服务,可监听于某套接字,帮其他主机记录日志信息 日志格式 /etc/rsyslog.conf facitlity.priority         &…

    Linux干货 2016-10-28
  • 6

    请详细总结vim编辑器的使用并完成以下练习题; 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/ rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; #   cp /etc/rc.d/rc.sysinit /tmp/ #   vim…

    Linux干货 2017-02-07