http://203.208.39.132/search?q=cache:mst7iC_w9PwJ:www.linuxdiyf.com/viewarticle.php%3Fid%3D26506+linux+at%E5%AE%9A%E6%97%B6%E6%89%A7%E8%A1%8C&cd=8&hl=zh-CN&ct=clnk&gl=cn&inlang=zh-CN&client=aff-360homepage&st_usg=ALhdy28neGfJmtjWQDIHKC0n1EtkpzM1mA[@more@]Unix系统提供了cron和at命令,使系统和用户可以
定时运行一定的程序,而不需手工启动。
使用cron用于周期性的 执行一个命令,为了使用它,必须编辑crontab文件。系统缺省的/etc/crontab 文件为:
在这个crontab文件中首先设置了几个环境变量,cron 执行这个文件时先设置这些环境变量,然后按照每列规定的时间来 执行相应的命令。第一列为分钟,规定每小时的第几分 执行相应的程序,第二列为每天第几小时 执行程序,,第三列为每月的第几天,第四列为第几周,第五列为每周的第几天,第六列为 执行该文件的用户身份,第七列为要 执行的命令。
普通用户也可以使用crontab命令来创建和维护自己的crontab文件。由于是用户不能更改 执行程序的标识的,因此用户的crontab就不需第六列── 执行程序的用户身份,而只要直接跟随要 执行的命令。使用 “crontab -e” 命令,使用编辑器按照相应的格式编辑自己的crontab文件,或者使用 “crontab -l ” 列出现有crontab文件的内容,当然只有root用户才能查看其他用户的crontab文件:
所有用户的crontab设置文件都放在/var/cron/tabs目录下,文件名与每个用户的用户名相同。cron中的命令 执行结果将被系统使用mail寄给每个用户。在/var/cron目录下还有crontab 执行的记录文件,系统管理员可以按照这个文件来检查系统安全性,检查是否有影响系统安全的程序被 执行。
与cron不同,at命令用于在一定的时间后或在一定的时刻 执行设置好的命令。at命令使用一个时间参数表示何时 执行命令,然后就从标准输入中读入要 执行的命令,此时就如同在shell下操作一样输入要 执行的命令,最后使用^D 退出输入命令的模式。用户不必担心真正 执行命令时是否能够找到正确的程序,at会将当前shell的设置,包括环境变量,保留起来,以便在 执行命令时创造一个与启动at时完全相同的 执行环境。
上面命令将在两天后的凌晨1:00时启动进程下载文件,当然at命令并不是十分精确,其 执行时间只是表示大概时间,可能与标准时间存在一两分钟的差异。at也支持各种复杂的时间表示方法,可以使用hhmm,hh:mm,或者加上am或pm结尾的12小时制方式。还可以使用年月日,规定程序运行的日期:
用户的at程序 执行结果也被系统邮寄给该用户,用户可以使用mail来查看程序的输出结果或 执行错误。当用户启动at命令之后,可以使用atq命令来查看自己还没有 执行的at命令,如果atq是由root 执行,则将列出系统中所有没有 执行的at命令。然后可以使用atrm命令根据atq输出Job号来删除at作业。
系统使用/var/at/at.allow和/var/at/at.deny文件来配置可以使用at命令的用户,和不可以使用at命令的用户。其中at.allow的优先权更高,如果存在at.allow,就只允许这个文件中列出的用户使用at,而不考虑任何不在这个文件中列出的用户。因此可以使用一个空at.allow文件禁止所有用户使用at。当不存在at.allow文件的时候,那么凡不在at.deny文件中列出的用户都可以使用at。
使用cron用于周期性的 执行一个命令,为了使用它,必须编辑crontab文件。系统缺省的/etc/crontab 文件为:
QUOTE: |
# /etc/crontab - root's crontab for FreeBSD # # $Id: crontab,v 1.13 1996/01/06 22:21:37 ache Exp $ # From: Id: crontab,v 1.6 1993/05/31 02:03:57 cgd Exp # SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # #minute hour mday month wday who command # */5 * * * * root /usr/libexec/atrun # # rotate log files every hour, if necessary 0 * * * * root /usr/sbin/newsyslog # # do daily/weekly/monthly maintenance 0 2 * * * root /etc/daily 2>&1 | sendmail root 30 3 * * 6 root /etc/weekly 2>&1 | sendmail root 30 5 1 * * root /etc/monthly 2>&1 | sendmail root # # time zone change adjustment for wall cmos clock, # does nothing, if you have UTC cmos clock. # See adjkerntz(8) for details. 1,31 0-4 * * * root /sbin/adjkerntz -a |
在这个crontab文件中首先设置了几个环境变量,cron 执行这个文件时先设置这些环境变量,然后按照每列规定的时间来 执行相应的命令。第一列为分钟,规定每小时的第几分 执行相应的程序,第二列为每天第几小时 执行程序,,第三列为每月的第几天,第四列为第几周,第五列为每周的第几天,第六列为 执行该文件的用户身份,第七列为要 执行的命令。
普通用户也可以使用crontab命令来创建和维护自己的crontab文件。由于是用户不能更改 执行程序的标识的,因此用户的crontab就不需第六列── 执行程序的用户身份,而只要直接跟随要 执行的命令。使用 “crontab -e” 命令,使用编辑器按照相应的格式编辑自己的crontab文件,或者使用 “crontab -l ” 列出现有crontab文件的内容,当然只有root用户才能查看其他用户的crontab文件:
QUOTE: |
$ crontab -l 12 0 * * * /home/wb/bin/getfiles |
所有用户的crontab设置文件都放在/var/cron/tabs目录下,文件名与每个用户的用户名相同。cron中的命令 执行结果将被系统使用mail寄给每个用户。在/var/cron目录下还有crontab 执行的记录文件,系统管理员可以按照这个文件来检查系统安全性,检查是否有影响系统安全的程序被 执行。
与cron不同,at命令用于在一定的时间后或在一定的时刻 执行设置好的命令。at命令使用一个时间参数表示何时 执行命令,然后就从标准输入中读入要 执行的命令,此时就如同在shell下操作一样输入要 执行的命令,最后使用^D 退出输入命令的模式。用户不必担心真正 执行命令时是否能够找到正确的程序,at会将当前shell的设置,包括环境变量,保留起来,以便在 执行命令时创造一个与启动at时完全相同的 执行环境。
QUOTE: |
$ at 1:00am +2days wget ftp://ftp.cdrom.com/pub/FreeBSD/packages/All/netscape.tgz |
上面命令将在两天后的凌晨1:00时启动进程下载文件,当然at命令并不是十分精确,其 执行时间只是表示大概时间,可能与标准时间存在一两分钟的差异。at也支持各种复杂的时间表示方法,可以使用hhmm,hh:mm,或者加上am或pm结尾的12小时制方式。还可以使用年月日,规定程序运行的日期:
QUOTE: |
$ at 1:00am Mar 5 echo Hello | mail root ^D Job 5 will be executed using /bin/sh $ atq Date Owner Queue Job# 01时00分00秒 00/03/05 root c 5 $ atrm 5 |
用户的at程序 执行结果也被系统邮寄给该用户,用户可以使用mail来查看程序的输出结果或 执行错误。当用户启动at命令之后,可以使用atq命令来查看自己还没有 执行的at命令,如果atq是由root 执行,则将列出系统中所有没有 执行的at命令。然后可以使用atrm命令根据atq输出Job号来删除at作业。
系统使用/var/at/at.allow和/var/at/at.deny文件来配置可以使用at命令的用户,和不可以使用at命令的用户。其中at.allow的优先权更高,如果存在at.allow,就只允许这个文件中列出的用户使用at,而不考虑任何不在这个文件中列出的用户。因此可以使用一个空at.allow文件禁止所有用户使用at。当不存在at.allow文件的时候,那么凡不在at.deny文件中列出的用户都可以使用at。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/450962/viewspace-1030972/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/450962/viewspace-1030972/