在FreeBSD中定时执行任务

2009-05-13 08:42:12来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


FreeBSD中定时执行任务分两种情况:一种是一次性执行的任务,另一种是周期性定时执行的任务。前面一种将用到指令at,而后一种会用到指令crontab。

「at」设定只执行一次的程序
「at」的设定可以分为三个指令:「at」用来建立工作、「atq」用来列出目前待执行的工作有哪些、「atrm」用来删除 atq 中所列出的工作。当您执行了 at 后,它会要求您在命令列中以 shell scripts 的写法输入想要执行的指令,而您也可以先将所要执行的指令写再一个档案中,再让 at 去执行。
在使用 at 指令时,必须先输入您要在什么时候执行工作,而时间的格式可以是下列任何一种:
格式
说明
at 10pm
设定晚上十点执行。时间的格式可以是 HHMM 或 HH:MM。
at 8:30am Oct 10
设定十月十日早上八点半执行。
at midnight Jan 1 2005
设定 2005 年一月一日的第一秒钟执行。
at teatime
设定在下次的下午 4 点执行。teatime 表示是 4:00pm,而 midnight 表示半夜十二点,noon 表示中午十二点。
at -t MMDDhhmm
表示在 MM 月 DD 日 hh 时 mm 分时执行,您还可以在 MM 前加上年,而年的格式二位或是四位都可以。
如果您要设定在 10pm 执行某些工作,您可以打「at 10pm」后按 ,接着您必须开始输入所要执行的指令,在全部输入完成后,请按 +结束编辑。如果您不想使用命令列编辑的方式输入所要执行的工作,您可以先写一个 shell script 并使用下列指令设定:
# at -f mycommand.sh 10pm
上述指令中,您所写的 shell scripts 档案是 mycommand.sh。
在设定之后,接着您可以使用下列指令列出目前等待执行的 at 工作:
# atq
Date                                                                               Owner          Queue      Job#
2005年 6月 5日 周日 22时00分00秒 CST            root                   c             2
如果您要删除某一个工作,只要使用 atrm 并输入该工作在 atq 中的 job id 即可。例如,我们要删除 ID 为 2 的工作:
# atrm 2

「crontab」重复定时执行程序
在 UNIX 系统中,有一个背景程序会定时执行一些工作,这个程序在 FreeBSD 中称为「cron」。「cron」这个程序会定时去检查 /etc/crontab 及 /var/cron/tabs 中的档案,并执行其中的设定。/etc/crontab 可以让管理者设定要以什么使用者的身份去执行定时工作,而一般使用者如果要设定定时执行工作时,可以使用指令 crontab -e 来编辑自己的定时执行工作,crontab 会将使用者的工作设定放在 /var/cron/tabs 中。
文档/etc/crontab 的内容说明:

  • minute:代表一小时内的第几分,范围 0-59。
  • hour:代表一天中的第几小时,范围 0-23。
  • mday:代表一个月中的第几天,范围 1-31。
  • month:代表一年中第几个月,范围 1-12。
  • wday:代表星期几,范围 0-7 (0及7都是星期天)。
  • who:要使用什么身份执行该指令,当您使用 crontab -e 时,不必加此字段。

    标签:

    版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:FreeBSD使用者管理

下一篇:FreeBSD常用命令集(2)