SCO UNIX作业调度

【SCO UNIX作业调度】
作业调度是shell的一个特性,它允许用户使用作业调度命令,所谓作业调度实际上是时钟守护进程cron按照用户所提交的确定的时间在这个时间内执行某些运行作业,cron守护进程将在设定的日期规定的时间内自动地执行某样任务 。可在系统负载较轻时安排这些非交互式作业的运行,在Unix中与cron配合提交任务的命令有三种:at,batch,crontab 。

cron进程的活动可存放在日志文件中,该日志文件为/usr/lib/cron/log文件,是否对cron活动进行记录还要一个变量CRONLOG的设置,这个变量存放于/etc/default/cron文件中 。缺省情况下,这个变量设置值为NO,这说明cron进程的活动内容不保留在任何文件中,若需要可将其值改为yes或将其文件名改为其他用户需要的文件名 。此外,在/etc/default/cron中MAXLOGSIZE 限制了log文件的大小,该变量以512字节为单位设定的log的最大块数,确省为2048块 。在/etc/default/cron中的MAXCRON变量,控制在同一时刻允许运行的最大进程数量,确省为100 。

若系统的若干用户要使用cron进程,那么这个用户必须授予cron子系统的权限,给特定用户授予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作业的确切列表,只有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 [[CC]YY]MMDDhhmm.[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所提交的作业一般以固定的周期运行,在系统允许的情况在指定的周期内系统反复执行该作业 。

相关文件与目录
/usr/lib/cronmain cron Directory
/usr/lib/cron/at.allow list of allowed users
/usr/lib/cron/at.denylist of denIEd users
/usr/lib/cron/queuedefs scheduling information
/usr/spool/cron/atjobs spool area
/usr/lib/cron/.protoat and batch environment information
/usr/lib/cron/.proto.a at shell environment
/usr/lib/cron/.proto.b batch shell environment
/usr/lib/cron/.protoat 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)date 表示日期
3)increment 表示要在前面所指定的时间(time[date])再推后一段时间
4)-t [[cc]YY]MMDDhhmm.[SS]
CC 世纪
YY 年
MM 月
DD 日
hh 时
mm 分
SS 秒

推荐阅读