没明白你的意思,你是指删除at命令编辑时输入的字符,还是删除已经设定的但未执行的任务呢?
如果是编辑任务时删除输入的字符,可以直接使用键盘上的backspace键。如果backspace键无法删除,就得看看当前at命令编辑时使用的编辑器了,知道啥编辑器了,删除字符就按编辑器的 *** 作来就可以了。
如果你指的是删除已设定的任务,那按照下面的 *** 作:
#查询当前有没有at设定的任务root@ubuntu-ss:~# atq
#很显然没有输出就是没有
#下面设定一个at任务
root@ubuntu-ss:~# at 13:00
warning: commands will be executed using /bin/sh
at> cat /etc/passwd > /tmp/copy_passwd
at> <EOT>
job 2 at Mon Feb 20 13:00:00 2017
#再查询一下看看
root@ubuntu-ss:~# atq
2 Mon Feb 20 13:00:00 2017 a root
#看到上面有一个job id为2的任务,就是刚刚创建
#要删除上面的job id为2的任务,使用atrm命令删除
root@ubuntu-ss:~# atrm 2
#删除之后,再查查
root@ubuntu-ss:~# atq
root@ubuntu-ss:~#
很简单的,自己试试
与crond不同的是,at任务调度是一次性的,而crond是重复性的
1.1 at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行
1.2 默认情况下,atd守护进程每60s检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
1.3 at命令是一次性定时计划任务,执行完一个任务后就不再执行这个任务了
1.4 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令查看
ps -ef | grep atd 可以检查atd是否在运行
at [选项] [时间]
按两次 ctrl+d 结束at命令的输入
4.1 当天的hh:mm(小时:分钟),假如这个时间已经过去,那么就第二天的这个时间执行。例如04:00
4.2 模糊的词语,例如midnight、noon、teatime(下午茶时间,16:00左右)
4.3 采用12小时计时制,例如8am
4.4 指定执行命令的具体日期,格式为month dat(月 日)或者mm/dd/yy或者dd.mm.yy,指定的日期必须跟着写在在指定时间的后面,例如:04:00 2021-3-1就是2021年3月1日凌晨4点整执行
4.5 相对计时法,指定格式为now + count time-units,now就是当前时间,time-units是时间单位,可以是minutes、hours、days、weeks。count是时间的数量,例如:now + 5 minutes
4.6 直接用today、tomorrow来指定完成命令的时间
5.1 2天后的下午5点,执行/bin/ls /home指令
at 5pm + 2 days 按回车键
然后写下那个时刻要执行命令 /bin/ls /home
最后按两次ctrl+d退出at指令
5.2 atq指令可以直接执行,查看系统中待执行的工作任务
5.3 明天17:00输出时间到指定文件内 /root/date100.log
at 17:00 tomorrow 按回车键
date >/root/date100.log
按两次ctrl+d退出at指令的输入
5.4 2分钟后
at now + 2 minutes
5.5 删除已经设置的任务,atrm 编号
可以用atq列出待执行的任务,列出后第一列就是job编号
at命令at:计划任务,在特定的时间执行某项工作,在特定的时间执行一次。
格式:at+时间
例1:date //查看系统当前时间
at 时间 //系统计划启动任务时间
at>date >/root/1.txt //date:系统计划启动任务时间执行date命令;/root/1.txt执行命令写入位
置和文件
ctrl+d退出 //退出at命令
例2:date //查看系统当前时间
at 时间 //系统计划启动任务时间
at>init 0 /root/2.txt //init 0:系统计划启动任务时间执行init 0(关机)命令;/root/2.txt执
行命令写入位置和文件
例3:在固定时间内添加一个用户(这时建立的用户没有密码)
#at 12:00(时间) //at命令设定12:00执行一项 *** 作
at>useradd aaa //在at命令里设定添加用户aaa
ctrl+d //退出at命令
tail -f /etc/passwd //查看/etc/passwd文件后十行是否增加了一个用户aaa
计划任务结束后,查看任务是否写入文件中,可以用cat或vi命令查看。
格式:cat(vi)+(路径)文件名
例1:cat(vi) 1.txt
日 2月 6 09:21:28 CST 2005
计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务。
格式:atq
例:atq
1 2005-02-06 09:23 a root
启动计划任务后,如果不想启动设定好的计划任务可以使用atrm命令删除。
格式:atrm+任务号
例:atrm 1 //删除计划任务1
atq //查看计划任务是否删除
还可以进入到/var/spool/at目录里把计划任务删除,计划任务的文件都保存在该目录里,可以用rm -f
文件名来删除(以文件的形式删除计划任务,因为计划任务是以文件形式保存在该目录中)
例:#cd /var/spool/at //进入到/var/spool/at目录中
ls //显示目录中所有文件
rm -f a0000a0119b0df //删除计划任务
在通常情况下,超级用户都可以使用这个命令。对于其他用户来说,能否可以使用就取决于两个文
件:/etc/at.allow和/etc/at.deny。
当“用户名”写入/etc/at.deny中,用户不能执行at命令(管理员限制用户使用at命令)。
例:useradd text //新建一个text用户
ls /etc/at.deny //查看at.deny文件内容
vi /etc/at.deny //对at.deny文件进行编辑
text //对at.deny文件进行编辑,写入text用户名,进行at命令限制,然后wq(保存退出)
cat /etc/at.deny //显示at.deny文件内容
su - text //切换到text用户
at 12:00 //text用户执行at命令,如果被限制则出现下面的提示。
You do not have permission to use at.你不允许使用at这个命令
at.allow比at.deny优先级高
at.allow文件中有的用户可以执行at,没有则不能。
linux *** 作系统在执行用户是否可以执行at命令时,先看at.allow文件没有才看at.deny文件。
注意:linux *** 作系统默认没有/etc/at.allow文件。
例:ls /etc/at.allow //查看是否已经建立at.allow文件
touch /etc/at.allow //建立/etc/at.allow文件
vi /etc/at.allow //对at.allow文件进行编辑
text //对at.allow文件进行编辑,写入text用户名,该用户名可以执行at命令,然后wq(保存退出)。
su - text //切换到text用户
at 12:00 //text用户执行at命令,若不出现上面所说的提示就可以进行at命令设定了。
at命令格式
at HH:MM YYYY-MM-DD //HH(小时):MM(分钟) YYYY(年)-MM(月份)-DD(日)
例:at 4:00 2004-11-27
HH[am pm]+D(天) days //HH(小时)[am(上午)pm(下午)]+days(天)
例:4pm + 3days :3天以后下午4:00执行at命令设定的计划任务。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)