加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用libvirt抓取linux kvm虚拟机的缩略图

发布时间:2020-12-17 17:10:20 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import libvirtimport osimport uuidtry: from PIL import Image print("PIL")except ImportError: import Imagedef handler(stream,buf,opaque): fd

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

import libvirt
import os
import uuid
try:
    from PIL import Image
    print("PIL")
except ImportError:
    import Image
def handler(stream,buf,opaque):
    fd = opaque
    os.write(fd,buf)
THUMBNAIL_SIZE =(256,256)
thumbnail = '/home/hcc/test/screenshot/test-' + str(uuid.uuid4())
command = "touch " + thumbnail
print(command)
os.system(command)
fd = os.open(thumbnail,os.O_WRONLY | os.O_TRUNC | os.O_CREAT,0644)
try:
    conn = libvirt.open('qemu:///system')
    d1 = conn.lookupByName('test')
    print(d1.info())
    print(d1.name())
    stream = conn.newStream(0)
    d1.screenshot(stream,0)
    stream.recvAll(handler,fd)
    if os.path.getsize(thumbnail) == 0:
        image = Image.new("RGB",THUMBNAIL_SIZE,'black')
        image.save(thumbnail)
    else:
        print("else")
        im = Image.open(thumbnail)
        im.thumbnail(THUMBNAIL_SIZE)
        im.save(thumbnail,'PNG')
except libvirt.libvirtError:
    try:
        stream.abor()
    except:
        pass
else:
    stream.finish()
finally:
    os.close(fd)

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读