定时运行作业

Linux系统提供了多个在预选时间运行脚本的方法:at命令和cron表。

at命令允许指定Linux系统何时运行脚本。at的守护进程atd会以后台模式运行,并检查作业队列来运行作业。

atd守护进程会检查系统上的一个特殊目录(通常位于/var/spool/at)来获取用at命令提交的作业。默认情况下,atd守护进程会每60s检查一下这个目录。

at命令的格式:at  [-f filename]  time

默认情况下,at命令会将STDIN的输入放到队列中。你可以用-f参数来指定读取命令的文件名。

at命令能识别多种不同的时间格式:

1.标准的小时和分钟格式,如:10:15

2.~AM/~PM指示符,比如10:15~PM

特定可命名的时间,比如now,noon,midnight或者teatime(4~PM)

如果指定了一个已经过去的时间,at命令会在第二天该时间运行该作业

除了指定运行作业的时间,也可以指定特定的日期,通过不同的日期格式:

1.标准日期格式,比如MMDDYY,MM/DD/YY或DD.MM.YY

2.文本日期,比如Jul 4或者Dec 25,加不加年份均可。

你也可以指定时间增量:

1.当前时间+25 min

2.明天10:15~PM

3. 10:15+7天

针对不同优先级,存在26种不同的作业队列。作业队列通常用小写字母a~z来引用。作业队列的字母排序越高,作业运行的优先级就越低。默认情况下,at的作业会被提交到at作业队列。如果你想以更高优先级运行作业,你可以用-q参数指定不同的队列字母。

当作业在Linux系统上运行时,Linux系统会将提交该作业的用户的E-mail地址作为STDOUT和STDERR。

atq命令可以查看系统中有哪些作业在等待。一旦你知道了哪些作业在作业队列中等待,你就能用atrm命令来删除等待中的作业。

Linux系统使用cron程序来计划要定期执行的作业。cron程序会在后台运行并检查特殊的称做cron时间表(cron table)的表,来获得计划执行的作业。

cron不会在系统关闭时运行作业,开机后也不会回去再运行错过的作业。要解决这个问题,可以使用anacron程序。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值