收藏 分享(赏)

UNIX与Linux 作业调度.doc

上传人:hwpkd79526 文档编号:9512388 上传时间:2019-08-11 格式:DOC 页数:6 大小:47KB
下载 相关 举报
UNIX与Linux 作业调度.doc_第1页
第1页 / 共6页
UNIX与Linux 作业调度.doc_第2页
第2页 / 共6页
UNIX与Linux 作业调度.doc_第3页
第3页 / 共6页
UNIX与Linux 作业调度.doc_第4页
第4页 / 共6页
UNIX与Linux 作业调度.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、SCO UNIX 作业调度 at, batch, crontabSCO UNIX 作业调度 作业调度是 shell 的一个特性,它允许用户使用作业调度命令,所谓作业调度实际上是时钟守护进程 cron 按照用户所提交的确定的时间在这个时间内执行某些运行作业, cron 守护进程将在设定的日期规定的时间内自动地执行某样任务。可在系统负载较轻时安排这些非交互式作业的运行,在 unix 中与 cron 配合提交任务的命令有三种:at,batch,crontab 。 cron 进程的活动可存放在日志文件中,该日志文件为/usr/lib/cron/log 文件,是否对cron 活动进行记录还要一个变量 C

2、RONLOG 的设置,这个变量存放于/etc/default/cron 文件中。缺省情况下,这个变量设置值为 NO,这说明 cron 进程的活动内容不保留在任何文件中,若需要可将其值改为 yes 或将其文件名改为其他用户需要的文件名。此外,在/etc/default/cron 中 MAXLOGSIZE 限制了 log 文件的大小,该变量以 512 字节为单位设定的log 的最大块数,确省为 2048 块。 在/etc/default/cron 中的 MAXCRON 变量,控制在同一时刻允许运行的最大进程数量,确省为 100。 若系统的若干用户要使用 cron 进程,那么这个用户必须授予 cro

3、n 子系统的权限,给特定用户授予 cron 子系统的权限的操作为 scoadmin-system-cron manager-shecdule-default-user-allow 或 scoadmin account manager -选中用户-users-user authorizations-authorized add cron(取消use system default .)-ok 对应有两个文件可看到那些用户具备此权限,分别为: /usr/lib/cron/cron.allow 谁能安排 cron 作业的确切列表 /usr/lib/corn/cron.deny 表示谁不能安排 cron

4、 作业的确切列表,只有 cron.allow 不存在时才有作用 如果这两个文件都不存在,表示只有 root 用户才有安排 cron 作业的权限。若两个文件都在,则 cron.allow 具有更高的优先权。 一、at,batch 使用方法 at,batch 的功能是在以后某个时间内执行某些命令。at 命令允许指定作业执行时间,batch 命令只有在系统负载允许的情况下执行该作业。每个作业的 id 号和执行时间都可输出到错误输出上。 at 的命令行结构: at -m -f file -q letter time date increment at -m -f file -q letter -t C

5、CYYMMDDhhmm.SS at -r job-id . job-id 指 at 命令作业的 id 号,-r 指删除该 id 号的作业 at -l job -d . 显示当前的 at 作业 at -l -q letter batch 不带参数,其提交的作业比 at 提交的作业比具有较低的优先级,其何时执行要看系统中已提交的作业数量。系统空闲时,提交的作业即可运行。 at,batch,crontab 三个命令的使用范围是有一定限制的,一般情况下,at,batch 提交一次性的作业,作业运行完后不再运行。而 crontab 所提交的作业一般以固定的周期运行,在系统允许的情况在指定的周期内系统反复

6、执行该作业。 相关文件与目录 /usr/lib/cron main cron directory /usr/lib/cron/at.allow list of allowed users /usr/lib/cron/at.deny list of denied users /usr/lib/cron/queuedefs scheduling information /usr/spool/cron/atjobs spool area /usr/lib/cron/.proto at and batch environment information /usr/lib/cron/.proto.a a

7、t shell environment /usr/lib/cron/.proto.b batch shell environment /usr/lib/cron/.proto at and batch environment information /usr/lib/cron/.proto.a at shell environment /usr/lib/cron/.proto.b batch shell environment 部分参数说明分别如下 1)time 表示时间,可指定为 1,2,或 4 个数字,1 或 2 个数字被认为是小时,4 个数字被认为是小时和分钟,格式为 hh:mmm 2)

8、date 表示日期 3)increment 表示要在前面所指定的时间(timedate)再推后一段时间 4)-t ccYYMMDDhhmm.SS CC 世纪 YY 年 MM 月 DD 日 hh 时 mm 分 SS 秒 5)-q letter 把指定作业置于指定字母所指示的队列内,可以是从 a 到 z 的任何小写字母以下队列有特殊意义 a at 队列 b batch 队列 c cron 队列 6)-m 不使用-m 选项时,作业的标准输出将直接 mail 给相应用户 (除非作业被明确重新定向) 。使用-m 选项时,即使作业没有输出,也将以邮件形式通知用户。 7)-f file 指定包含有 at 作

9、业的源文件名,以代替从标准输入。 8)-l job-id 列出指定作业的相关信息 9)-r job-id 删除指定作业 at 和 batch 作业提交后,均被指定一个相应的作业标识符,at 作业带有 后缀.a, batch作业带有后缀 .b 。所有作业以其作业标识符为文件名,保存在/usr/spool/cron/atjobs 目录中。 二、crontab 的使用方法 crontab 命令的功能是在一定的时间间隔调度一些命令的执行。通常这些要运行的命令放在 crontab 文件中,该文件为/usr/spool/cron/crontabs 下面与用户名相同的文件,或在每次执行时不使用该文件名直接使

10、用 crontab -e 指令。( 在 at 命令中,命令文件的存放是任意的 )。命令执行默认的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。 crontab 命令有三种形式的命令行结构: crontab cronfile crontab -e|-l|-r crontab -l -u -e|-l|-r 相关文件目录 /usr/lib/cron main cron directory /usr/spool/cron/crontabs crontab directory /usr/lib/cron/cron.allow list of allowed users /usr/lib/cr

11、on/cron.deny list of denied users /usr/lib/cron/queuedefs cron data file 1) crontab cronfile cronfile 是命令文件的名字。如果在命令行中指定了这个文件,那么执行 crontab 命令,则将这个文件拷贝到 crontabs 目录下;如果在命令行中没有制定这个文件, crontab 命令将接受标准输入(键盘)上键入的命令,并将他们也存放在 crontab 目录下。 (不建议使用该方式,如果用 crontab cronfile ,将会把原来的已经提交的 cron 作业删除) cronfile 是具有一

12、定格式的普通文件,在文件中可以包含多余一个的作业信息,每个作业作为一个登记项,独占一行,用空格分开的 6 个字段,前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,称为命令字段,其中包括了 crontab 调度执行的命令。具体格式如下 minutes hours day_of_month month day_of_week command minutes 分钟 0-60 hours 小时 0-23 day_of_month 日 1-31 month 月 1-12 day_of_week 星期的日 0-6(0 表示星期日) command 命令 任何非交互的命令 2) -l 显示已经提

13、交的 cron 作业 3)-e 对已经提交的 cron 作业编辑,或添加,删除作业建议使用该方式添加 cron 作业,相比手工修改/usr/spool/cron/crontabs/username 文件,使用 crontab -e 可以对提交的作业进行语法检查,如果没有按照规定 6 个字段提交作业,会提示相应错误信息。 如果手工对/usr/spool/cron/crontabs/username 编辑,为确保作业提交可按照以下步骤执行用 crontab -e 编辑该文件 :x 存盘退出或用 ps 命令查找 cron 进程,用 kill 杀下/etc/cron 进程, rm /usr/lib/c

14、ron/FIFO;/etc/cron 注释: /usr/lib/cron/FIFO,当新的作业提交由 crontab 完成时,一个发送消息到 cron守护进程的命令管道。 4) -r 删除当前已经提交的 cron 作业 5) -u user 对指定用户的 cron 作业进行维护。 三、环境文件 /usr/lib/cron/.proto 定义的 shell 环境适用于 at 和 batch 。 /usr/lib/cron/.proto.a 适用于 at /usr/lib/cron/.proto.b 适用于 batch .proto.a , .proto.b 与 .proto 相比有更高的优先权。

15、 默认情况下,只存在 .proto.b 和 .proto ,且内容相同。 以上相关维护可以使用 cron manager 实现 cron 作业提交后,未能定时完成相应任务,可按照下面的方法查找原因 1。查看 /usr/lib/cron/log 中的提示 2。将提交的作业输出重新定向,查看相应的 log 文件 作业提交后未能完成相应任务,通常是因为环境变量设置的问题 例如:因 PATH 等变量的设置未找到相关的程序等上一次由 silverwolf 于 2003-12-17 周三, 上午 10:16 修改,总共修改了 3 次 返回顶端 silverwolf级别:圣骑士年龄: 26加入时间: 200

16、3/11/28文章: 134金币: 118时间: 2003-12-16 周二, 下午 7:49 标题: 另一篇教程,含例子 -crontab 命令简介 简介 crontab-操作每个用户的守护程序和该执行的时间表。 部分参数说明 crontab file -u user-用指定的文件替代目前的 crontab。 crontab-u user-用标准输入替代目前的 crontab. crontab-1user-列出用户目前的 crontab. crontab-euser-编辑用户目前的 crontab. crontab-duser-删除用户目前的 crontab. crontab-c dir-

17、指定 crontab 的目录。 crontab 文件的格式:M H D m d cmd. M: 分钟(0-59) 。 H:小时(0-23) 。 D:天(1-31) 。 m: 月(1-12) 。 d: 一星期内的天(06, 0 为星期天) 。 cmd 要运行的程序,程序被送入 sh 执行,这个 shell 只有 USER,HOME,SHELL 这三个环境变量。 下面是一个例子文件: #MIN HOUR DAY MONTH DAYOFWEEK COMMAND #每天早上 6 点 0 6 * * * date #每两个小时 0 */2 * * * date #晚上 11 点到早上 8 点之间每两个小时,早上 8 点 0 23-7/2,8 * * * date #每个月的 4 号和每个礼拜的礼拜一到礼拜三的早上 11 点 0 11 4 * mon-wed date #1 月份 1 日早上 4 点 0 4 1 jan* date 范例 lark:crontab-1 列出用户目前的 crontab. #MIN HOUR DAY MONTH DAYOFWEEK COMMAND 10 6* * * date 0*/2* * * date 0 23-7/2,8 * * * date

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报