每天一个linux命令(33):atq命令

列出当前用户的at任务列表

补充说明

atq命令 显示系统中待执行的任务列表,也就是列出当前用户的at任务列表。

语法

atq(选项)

选项

-V:显示版本号;
-q:查询指定队列的任务。
at now + 10 minutes
at> echo 1111
at> <eot>
job 3 at Fri Apr 26 12:56:00 2013

atq
3       Fri Apr 26 12:56:00 2013 a root

实例

一、at服务
1.概念

①Linux系统想要使用单一计划任务,需要at服务的支持
②at服务是由atd程序产生的
②并非Linux发型版本都默认启动了这个任务,有时候我们需要手动的启动这个服务
③并且所有的Linux系统都有这个服务
2.atd服务的设置

重新启动at服务:systemctl  restart  atd
让at服务开机自动启动:systemctl  enable atd
查看一下at目前的状态:systemctl  status  atd
Loaded:是否开机自启动,后面enable表示不能
Active:是否正在运行,running正在运行


二、at服务的运作方式
1.at的运行方式

at这个命令是用来产生所要运行的单一计划任务的
at产生一个任务,然后以文本文件的方式写入/var/spool/at/目录内,该任务便能等待atd服务来使用与执行


2./etc/at.allow与/etc/at.deny文件

并不是所有人都可以执行at计划任务,因为出于安全的原因。于是系统用这两个文件来管控at产生任务:
/etc/at.allow文件:只有在这个文件中的用户才能使用at,不在这个文件中的用户不能使用at命令(尽管没有写在at.deny中)
/etc/at.deny文件:写在这个文件中的用户不能使用at命令,而没有在这个文件中的用户就可以at命令
如果这两个文件都不存在,那么只有root才可以使用at命令
/etc/at.allow与/etc/at.deny文件的注意事项
/etc/at.allow文件比较严谨
/etc/at.deny不严谨,因为写在这个文件的用户不能使用at命令,不在这个文件中的用户可以执行命令,不太安全


这两个文件不一定同时存在,有一个存在时只会使用其中一个。怎么使用还是看自己的设定,我的系统中默认是at.deny文件,并且文件是空的,代表所有用户都可以使用at命令设定任务
三、at的命令格式与演示案例
1.格式

at   [选项]   时间格式
相关参数与选项

-m:如果at内的shell命令没有任何输入信息,也发送email给at任务使用者
-l:at -l 相当于atq命令,猎虎目前系统上面所有该使用的at计划
-d:at -d相当于atrm命令,可以取消一个正在at计划中的任务
-v:可以使用较明显的时间格式列出at计划中的任务列表
-c:后面跟任务编号,列出该任务的内容
时间的格式有以下几种

HH:MM
HH:MM  YYYY-MM-DD
HH:MM[am/pm]  [Month]  [Date]
HH:MM[am/pm]  + number  [minuter/hours/days/weeks]:就是在某个时间点之后再过多久才执行
now:表示现在的时间
2.注意事项

输入at命令之后,书写任务时,命令和文件等都使用绝对路径
任务书写完之后,按住ctrl+d结束退出
3.at的执行与终端显示关系

如果我们想要在终端显示Hello字样,然后在at里面输入echo "Hello",等时间到了,屏幕并不会显示信息:因为at的执行与终端环境无关,所有的标准输出/标准错误输出都发送到执行者的mailbox中,所以在终端看不到任何信息
解决上面的方法:通过终端的设备处理,如果你在tty1登录,就在at内输入:echo "Hello" > /dev/tty1
4.at的输出问题(-m选项)

如果在at shell内输入的命令并没有输出任何信息,那么at不会发email给执行者。那么此时你可以使用-m选项来执行命令,这样at就会发送一个信息给执行者,而不论该命令执行有无信息输出
5.演示案例

案例一:再过5分钟之后,将/root/.bashrc文件发送给root自己


案例二:承上,上面产生的任务编号为2,查看这个任务的内容


案例三:计划在2019-03-06  23:30关机


四、at的脱机继续执行的功能与特点
1.概念

当你用at分配一个计划之后,系统会将该项at任务独立出你的bash环境,直接交给系统的atd程序来管理。
因此,但你执行了at的任务之后就可以立刻脱机了,剩下的工作就完全交给Linux管理
2.案例

你用你的Windows系统与Linux系统连接服务,两个系统之间有服务的交流,如果没有设置at任务,一个系统关机,连个系统之间的连接都会断开。如果你设置了at任务,即使你的Windows关机了,该服务还在运行
五、at任务的管理命令:atq、atrm
atq:查看你当前系统中有多少个at任务
atrm:删除一个at任务,后面接at任务编号
查看任务


删除任务3再查看,任务没了

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

neo_will_mvp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值