岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Linux频道 >> 新手入门 >> 软件使用 >> Linux频道正文
Linux 技巧: 用cron 和at 调度作业
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-12-18 15:16:52
etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

  在这个示例中,真正的工作由 run-parts 命令执行,它运行 /etc/cron.hourly、/etc/cron.daily 等目录中的脚本;/etc/crontab 仅仅控制执行作业的时间。注意,这里的所有命令都作为根用户运行。还要注意,crontab 可以包含 shell 变量赋值,这些赋值会在运行命令之前执行。

  anacron

  cron 适合那些连续运行的系统。对于那些常常不开机的系统,比如笔记本计算机,可以使用另一个实用程序 anacron(表示 “anachronistic cron”)调度每日、每周或?**葱械淖饕怠?anacron 不处理每小时执行的作业。

  anacron 在 /var/spool/anacron 中保留时间戳文件,记录作业运行的时间。当 anacron 运行时,它检查自作业上一次运行以来是否已经经过了所需的天数,如果需要,就运行作业。anacron 的作业表存储在 /etc/anacrontab 中,文件格式与 /etc/crontab 略有不同。与 /etc/crontab 一样,/etc/anacrontab 可以包含环境设置。每个作业有四个字段:

  周期

  延迟

  作业标识符

  命令

  周期是天数,但是可以指定为 @monthly,这确保作业每?**辉诵幸淮危ㄎ蘼壅飧**杏卸嗌偬欤?。延迟是在作业符合运行条件之后,到实际启动它之前等待的分钟数。可以使用这个设置防止在系统启动时集中执行作业。作业标识符可以包含除了斜线(/)之外的所有非空白字符。

  /etc/crontab 和 /etc/anacrontab 都通过直接编辑进行更新。不使用 crontab 命令更新这些文件或 /etc/cron.d 目录中的文件。

上一页  [1] [2] [3] [4] 下一页  

 

  在指定的时间运行作业

  有时候,需要只运行作业一次而不是定期运行。为此,应该使用 at 命令。要运行的命令是从 -f 选项指定的文件读取的,如果没有使用 -f,那么从 stdin 读取。-m 选项向用户发送邮件,即使命令没有 stdout.-v 选项显示运行作业的时间。这个时间也显示在输出中。

  清单 5 给出一个运行 mycrontest.sh 脚本的示例。清单 6 显示在运行作业之后通过邮件发送给用户的输出。注意,这里的输出比对应的 cron 作业输出要简单一些。

  清单 5. 使用 at 命令

[ian@lyrebird ~]$ at -f mycrontest.sh -v 10:25

Sat Jul  7 10:25:00 2007

job 5 at Sat Jul  7 10:25:00 2007

  清单 6. 来自 at 的作业输出

From ian@lyrebird.raleigh.ibm.com  Sat Jul  7 10:25:00 2007

Date: Sat, 7 Jul 2007 10:25:00 -0400

From: Ian Shields 

Subject: Output from your job        5

To: ian@lyrebird.raleigh.ibm.com

It is now 10:25:00 on Saturday

  时间的设置可以非常复杂。清单 7 给出几个示例。参见 at 的手册页、/usr/share/doc/at/timespec 文件或 /usr/share/doc/at-3.1.10/timespec 这样的文件(这个示例中的 3.1.10 是 at 包的版本号)。

  清单 7. at 命令使用的时间值

[ian@lyrebird ~]$ at -f mycrontest.sh  10pm tomorrow

job 14 at Sun Jul  8 22:00:00 2007

[ian@lyrebird ~]$ at -f mycrontest.sh 2:00 tuesday

job 15 at Tue Jul 10 02:00:00 2007

[ian@lyrebird ~]$ at -f mycrontest.sh 2:00 july 11

job 16 at Wed Jul 11 02:00:00 2007

[ian@lyrebird ~]$ at -f mycrontest.sh 2:00 next week

job 17 at Sat Jul 14 02:00:00 2007

上一页  [1] [2] [3] [4] 下一页  

 

  nice 值

  nice 值表示一个作业对于其他用户的优先程度。关于 nice 和 renice 命令的更多信息,参见教程 “LPI 101 考试准备:GNU 和 UNIX 命令”。

  at 命令还有一个 -q 选项。随着队列的增长,作业的 nice 值也会增长。 还有一个 batch 命令,它与 at 命令相似,但是作业只在系统负载足够低时运行。这些特性的细节参见手册页。

  管理调度的作业

  列出调度的作业

  可以管理 cron 和 at 作业。使用 crontab 命令和 -l 选项列出 crontab,使用 atq 命令显示用 at 命令加入队列中的作业,见清单 8.

  清单 8. 显示调度的作业

[ian@lyrebird ~]$ crontab -l

0,20,40 22-23 * 7 fri-sat /home/ian/mycrontest.sh

[ian@lyrebird ~]$ atq

16      Wed Jul 11 02:00:00 2007 a ia

上一页  [1] [2] [3] 下一页


  • 上一个Linux频道:
  • 下一个Linux频道:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:WebSyue@163.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    天龙八部私服 热血江湖私服 天龙八部私服 bet365 魔域私服 劲舞私服 传奇世界私服 bet365 传世私服 传奇世界私服