由于
at
工作排程的使用上,系统会½该项
at
工作独立出你的
bash
环境中,
直½½给系统的
atd
程序来½管,因此,当你下达了
at
的工作之后就可以立刻脱机了,
剩下的工作就完全½给
Linux
管
理即可
!所以啰,如果有长时间的网络工作时,嘿嘿!
使用
at
可以让你免除网络断线后的困扰喔!
^_^
.
at
工作的管理
那么万一我下达了
at
之后,才发现指令输入错误,该如何是好?就½他移除啊!利用
atq
与
atrm
吧!
[root@study ~]#
atq
[root@study ~]#
atrm (jobnumber)
范例一:查
询
目前主机上面有多少的
at
工作排程?
[root@study ~]#
atq
3 Tue Aug
4 23:00:00 2015 a root
#
上面
说
的是:『在
2015/08/04
的
23:00
有一
项
工作,
该项
工作指令下
达
者
为
# root
』而且,
该项
工作的工作
号码
(jobnumber)
为
3
号
喔!
范例二:
½
上述的第
3
个
工作移除!
[root@study ~]#
atrm 3
[root@study ~]#
atq
#
没
有任何信息,表示
该
工作被移除了!
如此一来,你可以利用
atq
来查询,利用
atrm
来删除错误的指令,利用
at
来直½下达单一工作排
程!很简单吧!
不过,有个问题需要处理一下。
如果你是在一个非常忙碌的系统下运作
at
,
能不
能指定你的工作在系统½闲的时候才½行
呢?可以的,那就使用
batch
指令吧!
.
batch
:系统有空时才½行背景任务
其实
batch
是利用
at
来½行指令的下达啦!只是加入一些控制参数而已。这个
batch
神奇的地方在
于:
他会在
CPU
的工作负载小于
0.8
的时候,才½行你所下达的工作任务
啦!
那什么是工作负载
0.8
呢?这个工作负载的意思是:
CPU
在单一时间点所负责的工作数量。不是
CPU
的使用率喔!
举例来说,如果我有一只程序他需要一直使用
CPU
的运算功能,那么此时
CPU
的使用率可能到达
100%
,
但是
CPU
的工作负载则是趋½于『
1
』,因为
CPU
½负责一个工作嘛!如果同时执行
这样的程序两支呢?
CPU
的使用率还是
100%
,但是工作负载则变成
2
了!了½乎?
所以也就是说,当
CPU
的工作负载越大,代表
CPU
必须要在不同的工作之间½行频繁的工作切换。
这样的
CPU
运作情况我们在第零章有谈过,忘记的话请回去瞧瞧!因为一直切换工作,所以会导致
系统忙碌啊!
系统如果很忙碌,还要额外½行
at
,不太合理!所以才有
batch
指令的产生!
在
CentOS 7
底下的
batch
已经不再支持时间参数了,因此
batch
可以拿来作为判断是否要立刻执
行背景程序的依据!
我们底下来实验一下
batch
好了!为了产生
CPU
½高的工作负载,因此我们
用了
12
章里面计算
pi
的½本,连续执行
4
次这只程序,
来仿真高负载,然后来玩一玩
batch
的
工作现象: