通过libguestfs-tools或者qemu-guest-agent向kvm虚拟机上传文件的两种方式

本文来自本人的个人网站

1、libguestfs-tools

仅在虚拟机关闭状态可用
环境变量增加:export LIBGUESTFS_BACKEND=direct
安装yum install libguestfs-tools guestfish -y
下载文件virt-copy-out -d instance-000000ea /home/v86/index.html /home/
上传文件virt-copy-in -d instance-000000ea /home/index.html /home/ (仅关机可用)
文件列表virt-ls disk /home/
virt-ls -d instance-000000ea /home/
递归文件列表virt-ls -R -d instance-000000ea /home


2、qemu-guest-agent

开机可用,openstack用
openstck的镜像添加元数据:
hw_require_fsfreeze=yes
hw_qemu_guest_agent=yes

Linux虚拟机处理,处理后可以保存快照,新虚拟机都用此快照启动:
vim /etc/sysconfig/qemu-ga,注释掉BLACKLIST_RPC,操作后重启下qemu-guest-agent
sed -i "s/SELINUX=enforcing/SELINUX=disable/" /etc/selinux/config
setenforce 0

虚拟机启动后,测试是否接通:virsh qemu-agent-command instance-000000ea '{"execute":"guest-ping"}'
返回{"return":{}}可用

文件转base64:echo `cat index.html`| base64 -w 0
创建文件夹:virsh qemu-agent-command instance-000000ea '{"execute":"guest-exec","arguments":{"path":"mkdir","arg":["-p","/home/test/"],"capture-output":true}}'
创建文件:virsh qemu-agent-command instance-000000ea '{"execute":"guest-exec","arguments":{"path":"touch","arg":["/home/test/1.html"],"capture-output":true}}'
打开文件:virsh qemu-agent-command instance-000000ea '{"execute":"guest-file-open", "arguments":{"path":"/home/test/1.html","mode":"w+"}}'
写入文件:virsh qemu-agent-command instance-000000ea '{"execute":"guest-file-write", "arguments":{"handle":1000,"buf-b64":"base64字符串"}}'
关闭文件:virsh qemu-agent-command instance-000000ea '{"execute":"guest-file-close", "arguments":{"handle":1000}}'

进入虚拟机,可以看到文件已上传到虚拟机

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wu852278685

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值