#!/usr/bin/env python
#encoding:utf-8
# desc:用来描述各个主机信息 import os #CTID NPROC STATUS IP_ADDR HOSTNAME configDir = '/etc/pve/lxc' #获取所有的配置文件
def fileListFunc(filePathList):
fileList = []
for filePath in filePathList:
for top, dirs, nondirs in os.walk(filePath):
for item in nondirs:
#fileList.append(os.path.join(top, item))
fileList.append(item)
return fileList #根据配置文件获取ID号
def getAllID():
idList = []
for id in fileListFunc([configDir]):
idList.append(id.split('.')[0])
return sorted(idList) #根据ID号获取主机状态
def getStat(id):
statInfo = os.popen('lxc-info -n ' + str(id)).read()
if 'RUNNING' in statInfo:
return 'running'
else:
return 'stoping' #根据ID号获取主机IP地址
def getIP(id):
ip = '-'
statInfo = os.popen('lxc-info -n ' + str(id)).read()
for line in statInfo.split('\n'):
if 'IP' in line:
ip = line.split(':')[1].strip()
return ip #根据ID号获取主机名
def getHostName(id):
hostname = '-'
statInfo = os.popen('cat /etc/pve/lxc/' + str(id) + '.conf').read()
for line in statInfo.split('\n'):
if line.startswith('hostname'):
hostname = line.split(':')[1].strip()
return hostname def pnull(n,str):
sn = len(str)
pn = n - sn
if pn <=0:
pn = 1
return ' ' * pn def main():
print 'CTID STATUS IP_ADDR HOSTNAME'
for id in getAllID():
stat = getStat(id)
ip = getIP(id)
hostname = getHostName(id)
print id + pnull(10,id) + stat + pnull(10,stat) + ip + pnull(16,ip) + hostname + pnull(10,hostname) if __name__ == '__main__':
main()

文件命令为vzlist

cat /usr/bin/vzlist

赋予执行权限,在任何地方都可以执行

proxmox新版本使用了lxc容器,导致以前的vzlist命令无法使用,于是自己写了一个脚本来获取所有半虚拟化主机的信息状态的更多相关文章

  1. centos7.5误删python2.7之后,导致yum和Pythonm命令无法使用

    问题描述 最近想要将服务器上的Python2.7升级成3.x的版本时.使用了如下命令: (1)强制删除已安装python及其关联 # rpm -qa|grep python|xargs rpm -ev ...

  2. Lxc容器基本用法

    你将学到什么 如何安装LXC 如何创建LXC容器 如何管理LXC容器 如何查询进程所属Namespace 如何给LXC容器添加网卡 如何限制LXC容器资源 环境 x64 Ubuntu 14.04.3 ...

  3. LXC容器

    1.    LXC简述 Linux container是一种资源隔离机制而非虚拟化技术.VMM(VMM Virtual Machine Monitor)或者叫Hypervisor是标准的虚拟化技术,这 ...

  4. 如何在Ubuntu上创建及管理LXC容器?

    将LXC安装到Ubuntu上 $ sudo apt-get install lxc 安装完毕之后,运行lxc-checkconifg工具,检查当前Linux内核支持LXC的情况.要是一切都已被启用,内 ...

  5. 在Ubuntu16.04上部署LXC容器管理系统的相关步骤

    打算安装一个LXC linux容器管理的软件来分配使用资源并配置不同的编程环境,这样就方便大家的使用,步骤如下(宿主机的环境都搭建好了,对应显卡的驱动等): 参考网站: 简单入门和相关指令总结:htt ...

  6. lxc 容器基础配置篇

    一, 首先配置lxc需要的网卡断 吧eth0复制一份变为br0 配置br0 配置eth0 重启网卡   /etc/init.d/network restart 安装lxc软件 需要epel源--- y ...

  7. 生成Alpine LXC容器的根文件系统

    一个Alpine LXC容器的文件系统内容包括以下内容 根文件系统 应用程序,库文件以及配置文件 根文件系统主要包含alpine linux最小系统所需要的组件.下面主要讲一下制作根文件系统的方法. ...

  8. Docker容器(四)——常用命令

    (1).基本使用方法 查看所有镜像.docker images [root@youxi1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ...

  9. 由于CentOS的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compression not available问题

    由于CentOS6的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compression not available问题.解 ...

随机推荐

  1. Java集合(一)——Collection

    集合概述 集合(Collections)是存储对象的容器.方便对多个对象的操作.存储对象,集合的作用就在这时显现了. 集合的出现就是为了持有对象.集合中可以存储任意类型的对象, 而且长度可变.在程序中 ...

  2. 到头来还是逃不过Java - 流程控制

    流程控制 没有特殊说明,我的所有这个系列的Java13的笔记都是从廖老师那里摘抄.总结过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要 ...

  3. 启动zookeeper却没有进程

    第一次: 没有jdk,安装好jdk就可以了 第二次: java的环境变量没配好,按照下图的配就行: Java_HOME和jre_HOME都是jdk的目录就行 最后两行不加试试,好像都没多大关系 应该是 ...

  4. Creo 2.0 Toolkit 解锁的问题

    近期开发Creo Toolkit遇到一个问题,在自己本机开发完成后运行并无问题,但是如果拿去给别人的机子运行会报出 提示“creo ToolKit应用程序在分配到您的地址之前未被解锁”,在与PTC 技 ...

  5. php 随机useragent

    <?php /** * 获取随机useragent */ private function get_rand_useragent($param) { $arr = array( 'Mozilla ...

  6. win10开发环境下安装mongodb

    MongoDB 下载 https://www.mongodb.com/download-center/community 在win10系统安装mongodb需要vc++运行库,如果没有则会提示“无法启 ...

  7. 记录华为、魅族手机无法打印 Log 日志的问题

    http://yifeng.studio/2017/02/26/android-meizu-huawei-not-log/ 实测 MEIZU PRO 6 :打开[设置]中的[开发者选项],页面底部找到 ...

  8. UINavigationbar跳转黑色

    bug效果:导航栏过渡出现黑色

  9. (最全最灵活地)利用Jxl工具包实现Excel表的内容读取 、写入(可向已有表中追加数据)

    1.引子 (1)读取 Jxl工具比较强大,可以方便地实现Excel表的读取和写入.另一款工具Poi也具有相似的功能,并且功能更多,运用也相对复杂.Poi读取Excel表内容时,需要先判断其内容格式,如 ...

  10. vue wangeditor3封装

      <script src="wangEditor/3.1.1/wangEditor.min.js"></script> Vue.component('my ...