Linux使用基本知识:用at和cron进行任务调度

发表于:2007-07-04来源:作者:点击数: 标签:
如何在特定的时间运行一个命令 at命令能在您所指定的时间运行您选择的命令。例如,如果我想在上午7点钟播放CDROM中的乐曲,则键入如下命令: at 7:00 at> cdplay 在上面的例子中,我先键入at 7:00然后键入回车,随后出现at命令提示符at>,在这个提示符下,又

  如何在特定的时间运行一个命令
  
  at命令能在您所指定的时间运行您选择的命令。例如,如果我想在上午7点钟播放CDROM中的乐曲,则键入如下命令:
  
  $ at 7:00
  
  at> cdplay
  
  在上面的例子中,我先键入at 7:00然后键入回车,随后出现at命令提示符at>,在这个提示符下,又键入命令cdplay,然后用结束输入。如果没有键入,而输入回车,则at>会在下一行出现,这样就可以键入另一条要在 7:00 执行的命令。
  
  依次类推,您可以安排从7:00开始执行的一系列命令。在命令输完后,用结束输入,相当于向当前输入发出了一个“文件尾”信号。因此,如果您连续按两次的话,您就会从系统中注销。
  
  下面的命令将列出所有待执行的作业,该命令会按照序号显示当前全部作业。
  
  $ at -l
  
  如果要删除队列中的某个作业,使用如下命令,它将删除队列中序号为8的作业。
  
  $ at rm 8
  
  下面的命令将在新的千年开始前五分钟启动X Window系统。
  
  $ at 23:55 12/31/00
  
  at> startx
  
  如果一般用户无法使用at命令的话,请检查一下文件/etc/at.deny和/etc/at.allow。在默认配置中,系统允许所有的用户使用at命令,如果您只想让某些用户使用at命令,就需要创建文件/etc/at.allow,并将可以使用at命令的用户列在文件中。
  
  对于at的其它可选项,请参见man at。
  
  3.6.2 如何设置cron
  
  我们在红旗Linux系统中默认安装了cron,它是一个Linux进程,主要用来在夜晚运行某些后台作业。所以您一般不需要对它做任何改动,除非您想在其中增加某些作业或修改cron运行作业的时间。
  
  cron的某些作业对系统而言是基础,用来保证系统能够长时间正常工作。
  
  cron的工作主要包括:
  
  
  重建文件位置的数据库,这样您才能用 locate 命令查找
  
  
  清空/tmp目录
  
  
  重建用户手册
  
  
  进行某些检查设置,例如增加新字体
  
  我们在每天下班时不应该关闭Linux,否则cron就无法完成它的工作。如果您确实要将计算机在夜晚关闭,就应该调整cron,让它在其它时间完成必需的工作。
  
  查看/etc/crontab文件可以了解cron作业什么时候被唤醒。
  
  $ cat /etc/crontab
  
  一个可能的示例文件如下。
  
  # 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
  
  其中包括了四类作业,每小时执行一次的、每天执行一次的、每周执行一次的和每月执行一次的,您也可以修改该文件,以增加您自己的cron类别。
  
  文件中每一项的含义如下:分钟(0-59),小时(0-23),一月中第几天(1-31),月份数(1-12),星期几(0-6或星期天至星期六)。其中“*”表示任何有效数字。
  
  因此,每小时完成的作业记录在目录/etc/cron.hourly中,这些作业每个小时的第1分钟将被执行。每天完成的作业记录在目录/etc/cron.daily中,这些作业每天4点过2分执行。每周执行的作业在星期六的上午4点22分执行。每月执行的作业在每月1日上午4点42分执行。每一项的最后一列指明了当时间到了以后,要运行的命令文件的完整路径名。
  
  如果您想把早晨4点12分执行的cron作业在中午进行,把4修改为12即可。cron在每分钟都会被唤醒一次,并检查/etc/crontab是否改变,所以对cron的修改是可以立即生效的。
  
  如果您想在cron中增加自己的作业,请将您要运行的命令的脚本文件或指向脚本的链接文件拷贝到目录/etc/cron.hourly或cron.daily或cron.weekly或cron.monthly下。
  
  

原文转自:http://www.ltesting.net