免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4950 | 回复: 2
打印 上一主题 下一主题

SCO UNIX作业自动调度(cron) [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-19 22:37 |只看该作者 |倒序浏览

SCO UNIX系统启动时,会自动执行cron命令,在系统中产生一个cron精灵
进程(或称守护进程)。该进程将自动调度相关作业并使其在后台运行。
cron精灵进程可按照预先设定的时间或时间间隔自动执行用户提交的作业。
如果想了解cron进程的活动情况,在/etc/default/cron 中,将CRONLOG设置为
YES,该值默认为NO,系统将自动生成相应的日志文件/usr/lib/cron/log。
在/etc/default/cron中MAXLOGSIZE 限制了log文件的大小,该变量以512字
节为单位设定的log的最大块数,确省为2048块。
在/etc/default/cron中的MAXCRON变量,控制在同一时刻允许运行的最大
进程数量,确省为100。
提交作业的命令有三个: at,batch和cron。通常 at 和 batch 用于只运行
一次的作业提交。crontab 用于按照一定时间反复运行的作业。
一。at 和 batch 的使用
at 命令需要指定命令执行的时间。而batch命令则无需指定执行时间(相应
命令只有在系统负载允许时才能执行)。
语法如下
at [ -m ] [ -f file ] [ -q letter ] time [ date ] [ increment ]
at [ -m ] [ -f file ] [ -q letter ] -t [[CC]YY]MMDDhhmm.[SS]
at -r job-id ...
at -l [ job-id ... ]
at -l -q letter
batch
相关文件与目录
/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
at 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)date
表示日期
3)increment
表示要在前面所指定的时间(time[date])再推后一段时间
4)-t [[cc]YY]MMDDhhmm.[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 作业的源文件名,以代替从标准输入。
8)-l [job-id]
列出指定作业的相关信息
9)-r job-id
删除指定作业
at 和 batch 作业提交后,均被指定一个相应的作业标识符,at作业带有
后缀.a, batch作业带有后缀 .b 。所有作业以其作业标识符为文件名,保存
在/usr/spool/cron/atjobs目录中。
二。crontab 的使用
crontab 提交的命令主要用于定期执行某些任务
用户提交的cron作业,都保存在相应的/usr/spool/cron/crontabs/username文件中
语法如下
crontab [ file ]
crontab [ -e | -l | -r ]
crontab -u user [ -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/cron/cron.deny
list of denied users
/usr/lib/cron/queuedefs
cron data file
部分参数说明分别如下
1) crontab [cronfile]
(不建议使用该方式,如果用crontab cronfile ,将会把原来的已经
提交的cron作业删除)
cronfile 是具有一定格式的普通文件,在文件中可以包含多余一个的
作业信息,每个作业作为一个登记项,独占一行,用空格分开的6个字
段,具体格式如下
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
显示已经提交的cron 作业
3)-e
对已经提交的cron 作业编辑,或添加,删除作业
建议使用该方式添加cron作业,
相比手工修改/usr/spool/cron/crontabs/username文件,使用
crontab -e 可以对提交的作业进行语法检查,如果没有按照规定6个
字段提交作业,会提示相应错误信息。
如果手工对/usr/spool/cron/crontabs/username 编辑,为确保作业
提交可按照以下步骤执行
用crontab -e 编辑该文件, 存盘退出

用ps 命令查找cron进程,用kill 杀下/etc/cron进程,
rm /usr/lib/cron/FIFO
/etc/cron
注释: /usr/lib/cron/FIFO,当新的作业提交由crontab完成时,一个
发送消息到cron守护进程的命令管道。
4) -r 删除当前已经提交的cron 作业
5) -u user
对指定用户的cron 作业进行维护。
三。相关维护
/usr/lib/cron目录下的
at.allow 记录了允许使用at和batch命令的用户
at.deny 记录了禁止使用at和batch命令的用户
cron.allow 记录了允许使用crontab 命令的用户
cron.deny 记录了禁止使用crontab 命令的用户
1) 如果只存在 .allow ,则只有包括在该文件中的用户可以执行相应命令
,如果该文件为空,表明没有一个用户能执行相应命令。
2) 如果不存在.allow ,只存在 .deny ,则只有不在该文件中的用户可以
执行相应命令。如果该文件为空,表明所有用户都可以执行相应命令
3) 如果.allow .deny 都存在,则 .allow 享有优先权
4) 如果.allow .deny 都不存在,则只有超级用户才能执行相关命令。
环境文件
/usr/lib/cron/.proto定义的shell环境适用于 at和batch 。
/usr/lib/cron/.proto.a 适用于at
/usr/lib/cron/.proto.b 适用于batch
.proto.a ,.proto.b 与 .proto相比有更高的优先权。
默认情况下,只存在 .proto.b 和 .proto ,且内容相同。
以上相关维护可以使用 cron manager 实现
cron作业提交后,未能定时完成相应任务,可按照下面的方法查找原因
1。查看 /usr/lib/cron/log 中的提示
2。将提交的作业输出重新定向,查看相应的log文件
作业提交后未能完成相应任务,通常是因为环境变量设置的问题
例如:因PATH等变量的设置 未找到相关的程序等

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31/showart_500299.html

论坛徽章:
0
2 [报告]
发表于 2009-01-20 19:10 |只看该作者
顺便问一下,使用这个命令 crontab -e  后,不知道如何存盘退出?

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
3 [报告]
发表于 2009-01-20 22:34 |只看该作者
跟操作VI一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP