- 论坛徽章:
- 0
|
本帖最后由 old_farmers 于 2019-02-18 14:31 编辑
各位大神新年好:
我想写一个脚本统计每台服务器的内存总大小,用dmidecode显示单根内存结果有的服务器显示单位是GB,有的是MB,RHEL-6的操作系统
[root@test ~]# dmidecode|awk '$1~/Size/&&$NF~/B/'
Size: 8192 MB
Size: 8192 MB
Size: 8192 MB
Size: 8192 MB
Size: 8192 MB
[root@test1 ~]# dmidecode|awk '$1~/Size/&&$NF~/B/'
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
我的想法是这样,如果$3是GB则sum+=$2,{print sum},如果是MB,则{print sum/1024},写到一半就报错了,请问怎么实现呢?if判断不能和END模式一起用吗?
[root@test1 ~]# dmidecode|awk '$1~/Size/&&$NF~/B/{{sum+=$2}if($3~/GB/){print sum}}'
32
64
96
128
[root@test1 ~]# dmidecode|awk '$1~/Size/&&$NF~/B/{{sum+=$2}if($3~/GB/)END{print sum}}'
awk: $1~/Size/&&$NF~/B/{{sum+=$2}if($3~/GB/)END{print sum}}
awk: ^ syntax error
|
|