使用bash脚本,我尝试从/proc/diskstats获取所有物理磁盘
8 0 sda 14256 20634 1376722 133628 279800 2362075 21135024 2133492 0 261052 2259536
8 1 sda1 14105 20634 1375514 133520 279800 2362075 21135024 2133492 0 261036 2259432
2 0 fd0 0 0 0 0 0 0 0 0 0 0 0并以如下格式回显它们的名称
{
"data":[
{ "{#DISK}":"sda"},
{ "{#DISK}":"sdb"},
]
}我正在尝试以这样一种方式来实现这一点,这种方式将被安装有Linux 2.6+的系统支持。我还希望避免在diskstats中显示的分区,它有4个字段,而不是磁盘的11个字段。
编辑:
我可以使用以下命令获取磁盘名称
cat /proc/diskstats | awk '{print $3}'或
cat /proc/diskstats | head -1 | awk '{print $3}'但是我不确定如何遍历和格式化它。
发布于 2012-09-19 03:13:58
假设您的设备名称中没有双引号(trollface.jpg),您可以坚持使用awk。
BEGIN {
print "{"
printf " \"data\": ["
first=1
}
!first {
printf ","
}
NF == 14 {
printf "\n { \"{#DISK}\":\""$3"\"}"
first=0
}
END {
print "\n ]"
print "}"
}https://stackoverflow.com/questions/12482359
复制相似问题