进程管理(3.0)

进程调度

at调度

功能:安排系统在指定时间运行程序

格式:

at    【参数】   时间

参数及含义如下。

-d(delete):删除指定的调度作业

-m(mail):任务结束后发送mail通知用户

-f  文件名 (file)从指定文件中读取执行的命令

-q  [a-z]:指定使用的队列

-l  (list):显示等待执行的调度作业

1.时间的绝对表示方法

在命令中,时间可以采用“小时:分钟”的绝对表示方式。时间可以是24小时制。如果采用12小时制,则时间后面需要加上AM(上午)或PM(下午),格式如下。

HH:MM

此外,还采用“MMDDYY”或“MM/DD/YY”或“DD.MM.YY”的格式指定具体的日期,必须写在具体时间之后

2.时间的相对表示方法

可以使用“now+时间间隔”的样式来表示时间。时间单位为minutes(分钟),hours(时),day(天),week(星期)。

now+n minutes                               //从现在起向后n分钟

now+n days                                  //从现在起向后n天

now+n hours                                //从现在起向后n小时

now+n weeks                               //从现在起向后n周

例如,设置at调度,要求在2018年12月31日23时59分向登录在系统上的所有用户发送“happy new year”信息:

at       23:59  12/31/2018

at>who

at>all happy new year!

at><EOF>                    //ctrl + d 结束作业

job 1 at 2018-12-31 23:59

输入at命令后,系统将出现“at”提示符,等待用户输入将执行的命令。输入完成后按<ctrl+D>组合键结束,屏幕将显示at调度的执行时间。

与at相关的还有显示队列中的作业信息命令atq和删除队列作业的命令atrm:

//显示at等待队列的作业信息

atq

1 2018-01-25     23:00 a root

2 2018-01-25      00:00 a root

//删除at等待队列中序号为1的作业

atrm      1

batch调度

功能:和at命令功能几乎相同,唯一区别是如果不指定运行时间,进程将在系统较空闲时运行。batch调度适合于时间上要求不高,但运行时占用资源较多的工作。

格式:

batch 【选项】 【时间】

batch命令选项与at命令相同

cron调度

at调度和batch调度中指定的命令只能执行一次。但实际的系统管理中有些命令需要在指定日期和时间重复执行。例如每天例行要做的数据备份。cron调度正可以满足这种要求。cron 调度与cron进程、crontab命令和crontab配置文件有关。

功能:安排作业让系统在指定时间周期运行

原理:cron进程,每隔一分钟,检查/var/spool/cron目录下用户提交的作业文件中有无任务需要运行。

1.crontab配置文件

crontab配置文件保留cron调度的内容,共有6个字段,从左到右依次为分钟、时、日期、月份、星期和命令共6个域,其中前5个域是指定命令执行的时间,最后一个域是要被执行的命令。

字段           分钟                     时                   日期                          月份                        星期                               命令

取值范围     0 59                0-23                 01-31                          01-12               0-6,0为星期天

所有字段不能为空,字段之间用空格分开,如果不指定字段内容,则使用“*”符号。

可以使用“-”符号表示一段时间。如果在日期中输入“1-5”则表示每个月前五天每天都要执行该命令。

可以使用“,”符号来表示指定的时间。如果在日期栏中输入“5,15,25”则表示每个月的5日、15日和25日都要执行该命令。“0-23/2”表示每隔2小时,即0:25,2:25,4:25,...都要执行该命令。

如果执行的命令未使用输出的重定向,那么系统将会把执行结果以邮件的方式发给crontab文件的所有者

用户的crontab文件保存在/var/spool/cron目录中,其文件名和用户名相同。

2.crontab命令

功能:维护用户的crontab配置文件

格式:

crontab 【参数】 文件名

参数说明如下。

-u用户名:指定具体用户的cron文件

-r(erase):删除用户的crontab文件

-e(edit):删除并编辑crontab配置文件

-l(list):显示crontab配置文件内容

3.cron进程

cron进程在系统启动时自动启动,并一直运行于后台。cron进程负责检测crontab配置文件,并按照其设置内容,定期重复执行指定的cron调度工作。

例如:要求root用户在每周二、四、六早上3点启动系统。

(1)建立crontab文件

vi /root/root.cron                           //以root用户登录

格式:           分            时             日              月              星期              要运行的程序

实例:           0            3               *                 *               2,4,6            /sbin/shutdown    -r    now

(2)运行crontab文件

crontab            /root/root.cron               //建立当前标准格式用户crontab文件

crontab命令提交的调度任务存放在/var/spool/cron目录中,并且以提交的用户名称命名,等待crond进程来调度执行

通过/etc/at.deny和/etc/at.allow文件可以控制执行at命令的用户,at.deny存放禁止执行at命令用户名;at.allow存放允许执行at命令的用户名。

如禁止user1用户执行at命令安排调度任务:

vi      /etc/at.deny

//向文件添加如下内容

user1

然后保存文件。

//root用户修改cron配置文件

crontab -e

用户输入“crontab -e”命令后,自动启动vi编辑器,显示出crontab文件内容,则用户编辑内容后保存退出。

//root用户显示cron配置文件内容

crontab -l

0  3  *  *  2,4,6  /sbin/shutdown -r now

//root用户删除cron调度

crontab  -r

crontab  -l

no crontab  for  root

猜你喜欢

转载自blog.csdn.net/mez_blog/article/details/80498344