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的系统后台进程的主要内容,如果未能解决你的问题,请参考以下文章

at一次性任务设置

At一次性任务设置#yyds干货盘点#

计划任务及其相关命令

Linux常用命令计划任务管理

linux例行性任务(定时作业)

#yyds干货盘点#任务计划