# 该指令码使用 guestmount 工具,Centos7.2 中安装 libguestfs-tools-c 可以获得 guestmount 工具
# 指令码在不登陆虚拟机器的情况下,修改虚拟机器的 IP 地址资讯
# 在某些环境下,虚拟机器没有 IP 或 IP 地址与真实 WordPress 主机不在一个网段
# 真实 WordPress 主机在没有 virt-mange 图形的情况下,远端连线虚拟机器很麻烦
# 该指令码可以解决类似的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

#!/bin/bash
#Author: 丁丁历险 (Jacob)
#该指令码使用 guestmount 工具,Centos7.2 中安装 libguestfs-tools-c 可以获得 guestmount 工具
#指令码在不登陆虚拟机器的情况下,修改虚拟机器的 IP 地址资讯
#在某些环境下,虚拟机器没有 IP 或 IP 地址与真实 WordPress 主机不在一个网段
#真实 WordPress 主机在没有 virt-mange 图形的情况下,远端连线虚拟机器很麻烦
#该指令码可以解决类似的问题
read -p “ 请输入虚拟机器名称:” name
if virsh domstate $name|grep -q running ;then
       echo “ 修改虚拟机器网络卡资料, 需要关闭虚拟机器”
       virsh destroy $name
fi
mountpoint=”/wp-content/uploads/sites/3/media/virtimage”
[ ! -d $mountpoint]&& mkdir $mountpoint
echo “ 请稍后…”
if mount | grep -q”$mountpoint” ;then
       umount $mountpoint
fi
guestmount  -d $name -i $mountpoint
read -p “ 请输入需要修改的网络卡名称:”dev
read -p “ 请输入 IP 地址:” addr
#判断原本网络卡配置档案中是否有 IP 地址,有,就修改该 IP,没有,就新增一个新的 IP 地址
if grep -q”IPADDR”  $mountpoint/etc/sysconfig/network-scripts/ifcfg-$dev;then
   sed -i “/IPADDR/s/=.*/=$addr/”  $mountpoint/etc/sysconfig/network-scripts/ifcfg-$dev
else
   echo “IPADDR=$addr” >>  $mountpoint/etc/sysconfig/network-scripts/ifcfg-$dev
fi
#如果网络卡配置档案中有客户配置的 IP 地址,则指令码提示修改 IP 完成
awk -F= -v x=$addr ‘$2==x{print “ 完成…”}’ $mountpoint/etc/sysconfig/network-scripts/ifcfg-$dev