我正在尝试高效地解析vmstat输出,最好是在awk或sed中,它也应该可以在linux和hp-ux上工作。例如,我想从以下输出中减少cpu idle %(在本例中为“92”):
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
11 0 385372 101696 61704 650716 0 1
我正试图在后台启动一个远程机器上的作业,并获得它的PID,这样我就可以在以后终止它。到目前为止,我想出了以下几点:
#!/bin/bash
IP=xxx.xxx.xxx.xx
REMOTE_EXEC="ssh $IP -l root"
# The following does NOT work, I am trying to get the PID of the remote job
PID=`$REMOTE_EXEC 'vmstat 1 1000 > vmstat.log & ; echo $!'`
# Launch apache benc
我已经嵌入了Linux开发板,运行了一些用户空间进程。当我运行"vmstat 1“时,我会看到以下内容
# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 51028 0 2788 0 0 0 0 293 441 0 0 100
我希望检索处理器使用率百分比,但没有显示大量数字的其他命令。有一个使用'grep‘或'awk’之类的解决方案。
~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 1447984 190232 146508 4983236 0 0 0 10 0 0 2
我正在尝试获取SPARC远程服务器的当前(而不是平均)空闲内存大小,但我没有使用free -m命令或prtconf的权限。因此,我使用命令vmstat 2,结果是kthr内存页磁盘故障cpu。
r b w swap free re mf pi po fr de sr vc vc vc vc in sy cs us sy id
0 0 0 46981864 20824288 311 416 51 1 1 0 0 27 6 0 18 16070 33290 17580 12 2 87
0 0 0 45534984 9138264 127 405 0 0 0 0 0
我制作了这个motd脚本:
#!/bin/bash
# Calulate avg CPU usage
usage=$((100-$(vmstat 1 2|tail -1|awk '{print $15}')))
aptlist=$(apt list --upgradable 2> /dev/null | sed 1d)
# Check if current usage isn't to high, else don't display the motd
if [[ ${usage%.*} -ge 95 ]];
then
printf "mo