用户中心

资讯 > 嵌入式系统

Crontab在重庆轨道交通二号线AFC系统优化中的应用

作者:斯亚岚,重庆市轨道交通总公司AFC中心系统2009.06.07阅读 108685

1 引言

Crontab在Unix&Linux系统中是一个古老而优久的系统工具,在重庆轨道交通二号线AFC系统中它除了应用于AFC中心系统的IBM服务器中还广泛地应用于18个车站的数百台闸机中!通过Crontab工具CONTROL ENGINEERING China版权所有,我们可以控制Unix&Linux操作系统平台上的任务,即让系统在特定的时间、环境下执行特定的任务。具体来说,通过Crontab工具我们在AFC中心IBM-P650服务器上实现了系统的自我管理和ORACLE数据库的周期性、定时性、自动化的备份功能;利用该工具,我们还可以实现每天运营结束后控制工程网版权所有,闸机的自动关机功能,到第二天开始运营前才启动,从而达到降低能耗、提高电子元器件的使用寿命、延长闸机的使用寿命的目的。对于重庆市特有的高温、高湿环境,这点在重庆二号线的AFC车站系统设备中有着特别重要的实际意义。

2 Crontab在重庆轨道交通二号线中的应用

下列各图分别是Crontab工具在AFC中心系统IBM-P650服务器及车站闸机中的应用(注:中心系统IBM-P650服务器是AIX操作系统;车站闸机是LINUX操作系统):

(图一)Cronta

b使车站闸机实现自动重启

(图二)Crontab实现IBM服务器的自动管理

(图三)Crontab实现Oracle数据库的每天的自动备份

3 Crontab的实现机制及具体实现

Crontab的实现主要包括Cron系统进程和Crontabs文件;Cron系统进程在Unix&Linux操作系统的多用户模式下运行,负责运行特定的计划的任务,Cron进程会按照Crontabs文件指定的时间执行命令;Crontabs文件上存储着指定的命令,由于Crontabs文件是不能通过编辑命令修改的,所以对它的编辑或其它的操作要通过Crontab命令。

Cron进程就是我们一般所谓的系统后台进程,它的启动是系统参考/etc/inittab启动的,所以它运行的状态也是一种衡定的后台进程状态,如果KILL掉控制工程网版权所有,它将会自动重启。

Cron后台进程执行的任务就是Cron事件,所以在系统中就存在着Crontab事件、At事件、Batch事件Ksh事件等等事件;所有的Cron事件都是能够被配置的,比如CONTROL ENGINEERING China版权所有,对于Crontab事件,默认状态下是每隔60秒将会被探查、运行的优先级适合于低于默认的2级的任何级别、可以同时运行100个,这些所有的配置将可以通过对/var/adm/cron/queuedefs文件的修改得以实现(该目录为完整的UNIX操作系统下的文件目录,不同的系统有可能不一样,可参考随机的相关说明文档)。比如CONTROL ENGINEERING China版权所有,如果任务将会运行在低于默认的优先级的10级、每隔两分钟被探查一次、允许同时启动200个任务,则以下条目将会设置在/var/adm/cron/queuedefs文件中:c.200j10n120w。

那么c.200j10n120w是什么意思呢?我们可以用下面这个简图来说明:

c.200j10n120w

| | | |

| | | 等待周期 (seconds)

| | 优先级值(nice)

| 任务数(jobs)

cron事件

Cron根据Crontabs文件中的定义在指定的时间执行相应的任务。Crontabs文件存在于/var/spool/cron/crontabs/user目录中。Cron通常只能由root用户使用,除非在以下两个文件中有特殊的规定:/var/adm/cron/cron.deny和/var/adm/cron/cron.allow。

/var/adm/cron/cron.deny拒绝使用Cron的用户 而/var/adm/cron/cron.allow允许使用Cron的用户。

Crontab文件的格式是:minute hour day month day_ of_ week command 。其中分别取值:

minute : 0-59

hour : 0-23

day of the month :1-31

month of the year :1 -12

day of the week :0-6 (0=星期天, 1 =星期一, 等等)

这些域可以是“*”号,以“,”做分隔的列表或者是一个取值范围。

例如:在(图一)Crontab使车站闸机实现自动重启中的

01 4 * * * /sbin/reboot 表示在每天早上4.01分执行/sbin/reboot命令,实现系统自动重启。在(图三)Crontab实现Oracle数据库的自动备份中,0 0 * * 4 /home/oracle/ora0.sh 表示在每个星期四的凌晨0点执行/home/oracle/ora0.sh脚本程序CONTROL ENGINEERING China版权所有

版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688