at: 安排一个任务在未来执行,需要一个atd的系统后台进程
Posted fanweisheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了at: 安排一个任务在未来执行,需要一个atd的系统后台进程相关的知识,希望对你有一定的参考价值。
检查atd进程是否启动
[[email protected] 桌面]# service atd status
atd (pid 2274) 正在运行...
[[email protected] 桌面]# chkconfig |grep atd
atd 0:关闭 1:关闭 2:关闭 3:启用 4:启用 5:启用 6:关闭
如果未启动,可以使用如下命令:
[[email protected] 桌面]# service atd start
正在启动 atd: [确定]
[[email protected] 桌面]# chkconfig atd on
常用指令: at:安排延时任务
具体使用方法:
例1:
#at now+2 minutes 回车
>输入要执行的命令
>ctrl+d 结束输入
[[email protected] ~]# at now+2 minutes
at> wall Aixi
at> <EOT>
job 2 at 2010-06-18 16:36
<EOT>是ctrl+d中断输入,这个命令意思是发送一个广播内容是Hello Aixi.具体时间可以改,单位可以改,可以用hours,months,years,weeks等.
例2 我们还可以跟具体时间
[[email protected] ~]# at 16:39 dec 10
at> Hello Aixi
at> <EOT> ctrl+d结束输入
job 3 at 2010-12-10 16:39
意思是在今年的12月10日16:39运行这个命令.如果不加月和日,默认就是今天.
Atq:查询当前的等待任务
用atq来查询,已经运行的任务,就消失了。这就是at计划任务的重点,只运行一次
atrm:删除等待任务
启动计划任务后,如果不想启动设定好的计划任务可以使用atrm命令删除。
格式:atrm 任务号
命令后面跟计划任务编号,如果不跟,就会删除这个用户所有的计划任务。
例3
atrm 10 //删除计划任务10
atq //查看计划任务是否删除
at将要运行的命令以文本形式写入/var/spool/at/目录内,等待atd服务的取用和执行。
还可以进入到/var/spool/at目录里把计划任务删除,计划任务的文件都保存在该目录里,可以用rm -f 文件名来删除(以文件的形式删除计划任务,因为计划任务是以文件形式保存在该目录中)
例4:
#cd /var/spool/at //进入到/var/spool/at目录中
ls //显示目录中所有文件
rm -f a0000b0138b19c //删除计划任务
在通常情况下,超级用户都可以使用这个命令。对于其他用户来说,能否可以使用就取决于两个文件:/etc/at.allow和/etc/at.deny。
at 命令是可以基于用户来控制的,我们可以明确指定哪些用户可以使用at计划任务,哪些用户不可以使用at计划任务。
at的控制文件
/etc/at.allow
/etc/at.deny
系统默认是有at.deny文件,如果某个用户名在这个文件里,他就不能使用at计划任务。如果有at.allow文件,allow文件先行,检查了allow明确允许,就不会检查deny。
如果你要让哪个用户不能使用计划任务,就直接把他的用户名写进去就可以了,一排只能写一个。
以上是关于at: 安排一个任务在未来执行,需要一个atd的系统后台进程的主要内容,如果未能解决你的问题,请参考以下文章