at命令
at命令允许用户向cron守护进程提交作业,使其在稍后的时间运行。这里稍后的时间可能是指10min以后,也可能是指几天以后
根用户可以通过/etc目录下的at.deny文件来控制哪些用户可以使用at命令,哪些用户不行。不过一般来说,对at命令的使用不如对crontab的使用限制那么严格。
[hadoop@localhost etc]$ ll *deny*
-rw-r--r--. 1 root root 1 Apr 10 2018 at.deny
-rw-------. 1 root root 0 Apr 10 2018 cron.deny
-rw-r--r--. 1 root root 460 Jun 7 2013 hosts.deny
at命令的基本形式为:
at [-f script] [-m -l -r] [time] [date]
其中,
-f script 是所要提交的脚本或命令。
-l 列出当前所有等待运行的作业。 atq命令具有相同的作用。
-r 清除作业。为了清除某个作业,还要提供相应的作业标识(ID);有些UNIX变体只接受atrm作为清除命令。
-m 作业完成后给用户发邮件。
time at命令的时间格式非常灵活;可以是 H、HH . HHMM、HH:MM或H:M,其中H和M分别是小时和分钟。还可以使用a.m.或p.m.。
date 日期格式可以是月份数或日期数,而且at命令还能够识别诸如today、tomorrow这样的时间。
例:
[hadoop@localhost w1]$ at -f ./b.sh 23:48
job 7 at Sun Sep 18 23:48:00 2022
[hadoop@localhost w1]$ at -f ./b.sh 23:45
job 8 at Sun Sep 18 23:45:00 2022
使用 at -l命令来列出所有的作业
[hadoop@localhost w1]$ at -l
#第一列是作业标识,后面是作业运行的日期 /时间。第三列a代表at,最后一列是用户
3 Sun Sep 18 23:40:00 2022 a hadoop
4 Sun Sep 18 23:45:00 2022 a hadoop
5 Sun Sep 18 23:48:00 2022 a hadoop
6 Sun Sep 18 23:40:00 2022 a hadoop
7 Sun Sep 18 23:48:00 2022 a hadoop
8 Sun Sep 18 23:45:00 2022 a hadoop
清除一个作业
清除作业的命令格式为:atrm [job no] 或at -r [job no]
要清除某个作业,首先要执行 at -l命令,以获取相应的作业标识,然后对该作业标识使用at -r命令,清除该作业。
[hadoop@localhost w1]$ at -l
3 Sun Sep 18 23:40:00 2022 a hadoop
4 Sun Sep 18 23:45:00 2022 a hadoop
5 Sun Sep 18 23:48:00 2022 a hadoop
6 Sun Sep 18 23:40:00 2022 a hadoop
7 Sun Sep 18 23:48:00 2022 a hadoop
8 Sun Sep 18 23:45:00 2022 a hadoop
9 Sun Sep 18 23:50:00 2022 a hadoop
10 Sun Sep 18 23:55:00 2022 a hadoop
[hadoop@localhost w1]$ at -r 9#清除作业9
[hadoop@localhost w1]$ atrm 10#清除作业10
[hadoop@localhost w1]$ at -l
3 Sun Sep 18 23:40:00 2022 a hadoop
4 Sun Sep 18 23:45:00 2022 a hadoop
5 Sun Sep 18 23:48:00 2022 a hadoop
6 Sun Sep 18 23:40:00 2022 a hadoop
7 Sun Sep 18 23:48:00 2022 a hadoop
8 Sun Sep 18 23:45:00 2022 a hadoop
[hadoop@localhost w1]$
2022-9-20
,