Linux进程管理及作业控制
对于at命令来说,需要定时执行的命令是从标准输入或者使用-f选项指定的文件中读取并执行的。如果at命令是从一个使用su命令切换到用户shell中执行的,那么当前用户被认为是执行用户,所有的错误和输出结果都会送给这个用户。但是如果有邮件送出的话,收到邮件的将是原来的用户,也就是登录时shell的所有者。 [例3] $ at -f work 4pm + 3 days 在三天后下午4点执行文件work中的作业。 $ at -f work 10am Jul 31 在7月31日上午10点执行文件work中的作业。 在任何情况下,超级用户都可以使用这个命令。对于其他用户来说,是否可以使用就取决于两个文件:/etc/at.allow和/etc/at.deny。如果/etc/at.allow文件存在的话,那么只有在其中列出的用户才可以使用at命令;如果该文件不存在,那么将检查/etc/at.deny文件是否存在,在这个文件中列出的用户均不能使用该命令。如果两个文件都不存在,那么只有超级用户可以使用该命令;空的/etc/at.deny文件意味着所有的用户都可以使用该命令,这也是默认状态。 下面对命令中的参数进行说明。 -V 将标准版本号打印到标准错误中。 -q queue 使用指定的队列。队列名称是由单个字母组成,合法的队列名可以由a-z或者A-Z。a队列是at命令的默认队列。 -m 作业结束后发送邮件给执行at命令的用户。 -f file 使用该选项将使命令从指定的file读取,而不是从标准输入读取。 -l atq命令的一个别名。该命令用于查看安排的作业序列,它将列出用户排在队列中的作业,如果是超级用户,则列出队列中的所有工作。 命令的语法格式如下: atq [-V] [-q 队列] [-v] -d atrm 命令的一个别名。该命令用于删除指定要执行的命令序列,语法格式如下: atrm [-V] 作业 [作业...] -c 将命令行上所列的作业送到标准输出。 [例4] 找出系统中所有以txt为后缀名的文件,并且进行打印。打印结束后给用户foxy发出邮件通知取件。指定时间为十二月二十五日凌晨两点。 首先键入: $ at 2:00 12/25/99 然后系统出现at>提示符,等待用户输入进一步的信息,也就是需要执行的命令序列: at> find / -name “*.txt”|lpr at> echo “foxy:All texts have been printed.You can take them over.Good day!River” |mail -s ”job done” foxy 输入完每一行指令然后回车,所有指令序列输入完毕后,使用组合键结束at命令的输入。这时候屏幕将出现如下信息: warning:command will be executed using /bin/sh. job 1 at 1999-12-25 02:00 提醒用户将使用哪个shell来执行该命令序列。 实际上如果命令序列较长或者经常被执行的时候,一般都采用将该序列写到一个文件中,然后将文件作为at命令的输入来处理。这样不容易出错。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |