#!/bin/bash

#该脚本使用 guestmount 工具,可以将虚拟机的磁盘系统挂载到真实机文件系统中
#Centos7.2 中安装 libguestfs-tools-c 可以获得 guestmount 工具
#虚拟机可以启动或者不启动都不影响该脚本的使用
#将虚拟机磁盘文件挂载到文件系统后,就可以直接读取磁盘文件中的网卡配置文件中的数据

#建立挂载点
clear
mountpoint="/media/virtimage"
[ ! -d $mountpoint ]&& mkdir $mountpoint

read -p "输入虚拟机名称:" name
echo "请稍后..."
#如果有设备挂载到该挂载点,则先 umount 卸载
if mount | grep -q "$mountpoint" ;then
    umount $mountpoint
fi

#只读的方式,将虚拟机的磁盘文件挂载到特定的目录下,这里是/media/virtimage 目录
guestmount -r -d $name -i $mountpoint
echo
echo "--------------------------------------------"
echo -e "\033[32m$name 虚拟机中网卡列表如下:\033[0m"
dev=$(ls /media/virtimage/etc/sysconfig/network-scripts/ifcfg-* |awk -F"[/-]" '{print $9}')

# ls查看绝对路径
# awk -F"[/-]" 以/或者-为分隔符 分割/media/virtimage/etc/sysconfig/network-scripts/ifcfg-*
# {print $8} == ifcfg {print $9} == eth0..

echo $dev #输出网卡名
echo "--------------------------------------------"
echo 
echo
echo "+++++++++++++++++++++++++++++++++++++++++++"
echo -e "\033[32m 网卡 IP 地址信息如下:\033[0m"
for i in $dev
do
      echo -n "$i:"
      grep -q "IPADDR" /media/virtimage/etc/sysconfig/network-scripts/ifcfg-$i || echo "未配置 IP 地址"

# grep -q "IPADDR" 查找eth0..内包含IPADDR的行 静默输出
# IPADDR=192.168.4.5

awk -F"=" '/IPADDR/{print $2}' /media/virtimage/etc/sysconfig/network-scripts/ifcfg-$i

# awk -F"=" '/IPADDR/  以"="分割,包含/IPADDR/的行,输出$2

done
echo "+++++++++++++++++++++++++++++++++++++++++++"

最新文章

  1. 深入理解javascript对象系列第一篇——初识对象
  2. 说说ASP.NET的表单验证
  3. 流媒体技术之RTSP
  4. Quartz.NET syudy
  5. Ⅰ.net通信指前提
  6. Oracle数据库(1)
  7. c++实现输入法窗口自定义的代码
  8. activemq p2p方式
  9. Java IO面试
  10. 201521123075 《Java程序设计》第12周学习总结
  11. Reac全家桶笔记
  12. Kafka概述及安装部署
  13. .net amr格式文件转换成mp3格式文件的方法
  14. SQL: 从一个表随机读取一行或几行记录的问题
  15. PL/SQL学习笔记之异常
  16. [转载]drop、truncate和delete的区别
  17. GoldenGate实时投递数据到大数据平台(6)– HDFS
  18. vim 配色(mac)
  19. gradle 两种更新方法
  20. HUST 1599 - Multiple(动态规划)

热门文章

  1. 20191108-从零搭建基于Linux的RobotFramework框架
  2. 机器学习-EM算法-GMM模型笔记
  3. go io.Reader 接口
  4. C#进阶系列——WebApi 传参详解
  5. typescript 入门教程三
  6. 【LeetCode】从排序数组中删除重复项
  7. 爬虫相关--requests库
  8. JavaScript内置一些方法的实现原理--new关键字,call/apply/bind方法--前戏
  9. iOS NSNotification传递带参数的通知
  10. Android NDK 学习之在C中调用Java的变量和静态变量