linux命令统计cpu、内存、磁盘等
公司要统计服务器信息,nCnGnG(cpu、内存、磁盘),例如:4C8G24G。 统计这些信息的方式有很多,这里不一定是最优,只要能实现就行。
cpu
首先,top可以查看cpu个数,但是不好用命令来筛选,所以排除掉。 这里用lscpu。
显示数据为:
lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 8 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 79 Model name: Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz Stepping: 0 CPU MHz: 2294.609 BogoMIPS: 4589.21 Hypervisor vendor: VMware Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 1024K L3 cache: 16896K NUMA node0 CPU(s): 0-7 Flags: 这里有很多内容,略
最终命令:
lscpu | grep -E "CPU(s):" | grep -v node0 | awk {print $2}` # 结果 8
mem
free、free -m等都是可以的,但是发现一个问题,值并不准确,除以1000或1024,整数都不一定能获取到正确的值。 所以用free -g,这个也不准,但是稳定小1,所以加上1就可以完成了。
显示数据为:
free -g total used free shared buff/cache available Mem: 23 18 0 1 3 2 Swap: 7 0 7
命令为:
free -g | grep Mem | awk {print $2+1 } # 结果 24
disk
这里用df就可以。
显示数据为:
df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 12G 0 12G 0% /dev tmpfs 12G 64K 12G 1% /dev/shm tmpfs 12G 1.2G 11G 10% /run tmpfs 12G 0 12G 0% /sys/fs/cgroup /dev/mapper/centos-root 72G 14G 58G 20% /
命令为:
df -h | grep -w / | grep -v :/ | awk {print $2} # 结果 72G 注: grep -v :/ 是为了排除nas挂载的情况
最终
完整命令为:
cpu=`lscpu | grep -E "CPU(s):" | grep -v node0 | awk {print $2}` mem=`free -g | grep Mem | awk {print $2+1 }` disk=`df -h | grep -w / | grep -v :/ | awk {print $2}` echo $cpuG$memG$disk
当然,也可以写为脚本。
下一篇:
黑马点评的全局过滤器