一直以来我都以每个月至少一篇原创技术文章来要求自己,不过有的时候真的太懒了,在这里鄙视一下自己。
今天已经是这个月的最后一天了,其实近期的工作,有很多东西都是可以总结成文章分享给大家的。
有一些用Python和Shell写的脚本,我都放到了GitHub上,其中一个就是XCP/XenServer资源监控的脚本。
XCP/XenServer的XenCenter只有Windows下的客户端,命令行要获取可用的CPU,内存以及磁盘,并没有那么方便,需要通过各个命令行去获取。有的命令还必须在host主机本身运行才可以,比如 xl,因此我在各个XCP/XenServer的宿主OS之间都配置了ssh-key的信任。
我们的环境是由10多台物理服务器装上XCP构成的一个Pool,Pool的Manager是第一个XCP,然后存储是用的每台服务器本身的硬盘。
脚本的输出结果如下:
代码如下 | 复制代码 |
[root@xen1 ~]# vm_monitor Host xen1: vm-pdb1a vm-rdb1b Available: Mem=13/95G Disk=6/1108G CPU=18/24Cores Host xen2: vm-pdb1b vm-rdb1a Host xen3: vm-ads10 vm-ads3 vm-api3 vm-cp3 vm-m1 vm-relay1 Host xen4: vm-ads4 vm-c1 vm-log2 vm-mc2 |
...
具体的脚本内容如下:
代码如下 | 复制代码 |
#!/bin/bash host_list=$(xe vm-list params | grep "Control domain on host: " | awk -F ": " '{print $3}'| cut -d . -f 1 | sort -n) for host in $host_list t_cpu_num=$(ssh $host 'xe host-cpu-info | grep -w cpu_count | awk -F ": " "{print $2}"') |