#!/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. MQTT--Paho C Client 的实现和详解

    概述  在文章Paho - MQTT C Cient的实现中,我介绍了如何使用Paho开源项目创建MQTTClient_pulish客户端.但只是简单的介绍了使用方法,而且客户端的结果与之前介绍的并不 ...

  2. Elasticsearch节点类型

    当我们启动Elasticsearch的实例,就会启动至少一个节点.相同集群名的多个节点的连接就组成了一个集群. 在默认情况下,集群中的每个节点都可以处理http请求和集群节点间的数据传输,集群中所有的 ...

  3. css改变input输入框placeholder值颜色

    ::-webkit-input-placeholder { /* WebKit browsers */ color: #fff; } :-moz-placeholder { /* Mozilla Fi ...

  4. ThreeJS 阴影条纹BUG

    ThreeJS 开启阴影正确做法: 1. 渲染器启用阴影 renderer.shadowMap.enabled = true;2. 灯光产生阴影 light.castShadow = true;3. ...

  5. 函数返回值return

    #函数后面如果没有return系统会默认return none def ff(): print("打印return") return 15 # 函数在执行中遇到return就会停止 ...

  6. UML-如何画通信图?

    1.链 2.消息 3.自身传递消息 4.消息顺序编号 5.有条件消息 6.互斥的有条件消息 7.循环或迭代 8.调用静态方法 9.多态 10.同步和异步调用

  7. curl命令简介

    curl 文件传输工具 参数: -c --cokie-jar: 将cookie写入到文件 -b --cokie: 从文件中读取cookie -C --continue-at: 断点续传 -d --da ...

  8. java客房管理小项目,适合java小白练手的项目!

    java客房管理小项目 这个客房管理小项目,适合java初学者练手.功能虽然不多,但是内容很齐全! 喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私 ...

  9. epoll——IO多路复用选择器

    上上篇博客讲的套接字,由于其阻塞性而导致一个服务端同一时间只能与一个客户端连接.基于这个缺点,在上篇博客我们将其设置为非阻塞实现了一个服务端同一时间可以与多个客户端相连,即实现了并发,但其同样留下了一 ...

  10. SQL触发器笔记

    触发器(Trigger)是在对表进行插入.更新.删除等操作时自动执行的存储过程. 触发器是一种特殊的存储过程,它在执行语言事件时自动生效,采用事件驱动机制.当某个触发事件发生时,定义在触发器中的功能将 ...