进程管理(二)之计划任务

进程管理(二)之计划任务

 

一、计划任务:

1、未来的某时间点执行一次任务:

(1)at:跟一个时间点,到点了自动运行指定的任务

(2)batch:系统自行选择空闲时间去执行此处指定的任务

2、周期性运行某任务:cron

二、at命令:

1、at命令:at [option] TIME

blob.png

注:当输入完成后,使用Ctrl+d结束,不能使用Ctrl+c 。

2、常用选项:

-V 显示版本信息:

blob.png

-l: 列出指定队列中等待运行的作业;相当于atq

blob.png

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

-c: 查看具体作业任务

-f /path/from/somefile:从指定的文件中读取任务

-m:当任务被完成之后,将给用户发送邮件,即使没有标准输出

注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

3、at的时间格式:

noon(中午); midnight(子夜,凌晨整点); teatime(午茶时间,即下午四点)(4pm);tomorrow

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

(1)在今日的HH:MM 进行,若该时刻已过,则明天此时执行任务:HH:MM 02:00

(2)规定在某年某月的某一天的特殊时刻进行该项任务:HH:MM YYYY-MM-DD 04:00 2016-09-20

(3)规定在未来某个时间点执行该项任务:HH:MM[am|pm] [Month] [Date]

04pm March 17  ; 17:20 tomorrow

(4)HH:MM[am|pm] + number [minutes|hours|days|weeks],在某个时间点再加几个时间后才进行该项任务:now + 5 minutes 和04pm + 3 days

4、at任务:

1、执行方式:1)交互式2)输入重定向3)at -f 文件

blob.png

依赖与atd服务,需要启动才能实现at任务

blob.png

2、at队列存放在/var/spool/at目录中(机器关机也不会丢失,但如果任务没有正常执行,则在第二天的时间点执行)

blob.png

删除at计划任务:

blob.png

blob.png

3、通过/etc/at.{allow,deny}控制用户是否能执行at任务(系统正常情况下是没有at.allow这个文件的,需要手动建立)

4、at的使用设置:

先寻找/etc/at.allow (相当于白名单)文件,文件中的使用者才能使用at ,没有在这个文件中的使用者则不能使用at (即使没有写在at.deny 当中);如果/etc/at.allow 不存在,就寻找/etc/at.deny(相当于黑名单) 这个文件,若写在这个at.deny 的使用者则不能使用at ,而没有在这个at.deny 文件中的使用者则可使用at 命令;如果两个文件都不存在,只有root 可以使用at 这个命令。

三、周期性任务计划cron:

1、确保crond守护处于运行状态:

CentOS 7:

blob.png

CentOS 6:

blob.png

2、相关的程序包:

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

cronie-anacron:cronie的补充程序;用于监控cronie任务执行状况;如cronie中的任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务

crontabs:包含CentOS提供系统维护任务

3、计划任务:

(1)系统cron任务:系统维护作业

/etc/crontab

    blob.png

     系统的计划任务: /etc/crontab

/etc/cron.d/ 配置文件

/etc/cron.hourly/ 脚本

/etc/cron.daily/脚本

/etc/cron.weekly/脚本

/etc/cron.monthly/脚本

     blob.png

(2)用户cron任务:

crontab命令:每个用户都有专用的cron任务文件:/var/spool/cron/USERNAME

crontab命令格式:crontab[-u user] [-l | -r | -e] [-i]

使用选项:-l: 列出所有任务;

-e: 编辑任务;

-r: 移除所有任务;

-i:同-r一同使用,以交互式模式移除指定任务

-u user: 仅root可运行,指定用户管理cron任务

控制用户执行计划任务:/etc/cron.{allow,deny},效果如上面at的控制是一样的。

注意:运行结果的标准输出和错误以邮件通知给相关用户

(1) COMMAND > /dev/null

(2) COMMAND &> /dev/null

对于cron任务来讲,%有特殊用途;如果在命令中要使用%,则需要转义;不过,如果把%放置于单引号中,也可以不用转义

4、日志:/var/log/cron

5、时间表示格式:

(1) 特定值:给定时间点有效取值范围内的值

     # 0  0  1  * * 每月的1号凌晨零点

(2) * :给定时间点上有效取值范围内的所有值,表示“每…”

     # 30  0  20  *  * 每月的20号凌晨零点30分(有效时间如30分,每月的有效日20天)

(3) 离散取值:#,#,#   如:0  0  1,10,20  * *  每月的1号、10号、20号的凌晨零点

(4) 连续取值:#-#    如:0  0  10-20  * *  每月的10号到20号的凌晨零点

(5) 在指定时间范围上,定义步长:/# ,#即为步长

     */20  0  1  * * 每月的1号凌晨零点每二十分钟执行一次

6、系统默认设置:

  @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 * * * *   (每小时执行一次)

7、anacron系统:运行计算机关机时cron不运行的任务,CentOS6.0以后版本取消anacron服务,由crond服务管理。

配置文件:/etc/anacrontab ;负责执行/etc/ cron.daily /etc/cron.weekly /etc/cron.monthly中系统任务;/etc/cron.hourly/由/cron.d/0hourly执行

blob.png

8、管理临时文件:

rhel6.0使用/etc/cron.daily/tmpwatch定时清除临时文件

 rhel7.0使用systemd-tmpfiles-setup服务实现

 配置文件:

 /etc/tmpfiles.d/*.conf

 /run/tmpfiles.d/*.conf

 /usr/lib/tmpfiles/*.conf

 /usr/lib/tmpfiles.d/tmp.conf

 命令:systemd-tmpfiles –clean|remove|create configfile

9、at和crontab使用格式的对比:

at

crontab

Create

at   time

crontab   -e

List

at   -l

crontab   -l

Details

at   -c #(任务计划编号)

N/A

Remove

at   -d #(任务计划编号)

crontab   -r

Edit

N/A

crontab   -e

注:没有被重定向的输出会被邮寄给用户;根用户(root)能够修改其它用户的作业;root修改或者删除其他用户的任务计划,命令#crontab -e -u username

10、 如何在秒级别运行任务?

* * * * * for min in 0 1 2; do echo "hi"; sleep 20; done

sleep命令:s: 秒, 默认;m: 分;h: 小时;d: 天

例题: 

1、每4小时备份一次/etc目录至/backup目录中,保存的文件名称格式为“etc-yyyy-mm-dd-HH.tar.xz”

blob.png

2、每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”

blob.png

3、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中

blob.png

4、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就执行wall警报

blob.png

blob.png

 

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

赞 (0)
Aaron_wangAaron_wang
上一篇 2016-09-10 08:14
下一篇 2016-09-10 08:14

相关推荐

  • 第七周 系统启动维护管理

    1、简述linux操作系统启动流程 2、简述grub启动引导程序配置及命令行接口详解 3、实现kickstart文件制作与光盘镜像制作    

    2018-01-12
  • 程序包编译安装

    一、几个概念     1、开放源码         程序代码,人类可能读懂的程序语言,但是计算机不能识别和执行;     2、编译程序      &n…

    Linux干货 2015-05-11
  • 早安,Linux

    希望能通过不断的努力,变成一个不一样的我。

    Linux干货 2017-07-11
  • bash的基础特性[更新中]

    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3、请使用命令行展开功能来完成以下练习:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │   └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │   ├── bin
    │   └── sbin
    └── var
    ├── lock
    ├── log
    └── run
    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    2018-03-17
  • grep命令系列:grep中的正则表达式

     grep :是一款文本过滤工具 。其作用:根据用户指定的“模式”对目标文本进行逐个的匹配检查。  正则表达式 REGEXP:有一类特殊字符及文本字符所编写的模式,其中有些字符不表示字面的意义,而表示控制或通配的功能。    正则表达式分为两种:         基本正则表达式:…

    Linux干货 2017-04-10
  • Linux系统的终端类型

    一、什么是Linux终端     终端–用户用户与主机交互,必然要用到的设备。     早期的大型机,想使用的用户很多,但是主机只有一个,也不可能人手一台,但是可以做到在主机上接一个分屏器,分屏器的每一个端子上可以接上一套鼠标键盘显示器,就可以直接在主机上进行一些操作了,这就相当于每个人在独立的操作一台计算…

    Linux干货 2016-10-18