精华内容
下载资源
问答
  • 我使用的Linux服务器上有多个网卡,有时候就需要在脚本中使用到指定网卡的IP地址或MAC地址,那么这个时候就有两种做法,一是预先读取网卡的IP地址或MAC地址,然后写入到脚本中;另外一种方法就是通过shell命令实时...

    引言

    使用场景:

    我使用的Linux服务器上有多个网卡,有时候就需要在脚本中使用到指定网卡的IP地址或MAC地址,那么这个时候就有两种做法,一是预先读取网卡的IP地址或MAC地址,然后写入到脚本中;另外一种方法就是通过shell命令实时获取指定网卡上的当前IP地址或MAC地址。

    一般用法:
    1. 使用ifconfig eth0读取网卡信息

    2. 手动将IP地址或MAC地址拷贝出来,并填入到脚本中的对应变量中

    一句话脚本用法:

    [plain]  view plain  copy
    1. ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | cut -c 6-  (获取eth0网卡的IP地址)  
    2. 或  
    3. ifconfig eth0 | grep "HWaddr" | awk '{print $5}'  (获取eth0网卡的MAC地址)  
    上面的脚本分解步骤是:
    1. 获取eth0网卡的信息
    2. 过滤出IP地址的行或MAC地址的行
    3. 使用awk输出指定字段,对于MAC地址,第5个字段就是MAC;而对于IP地址,还需要对第2个字段截取第6个字符之后的内容

    ifconfig命令部分说明

    先看一下ifconfig的man手册中的描述:

           Ifconfig  is  used  to  configure  the  kernel-resident network interfaces.  
           If  no  arguments  are  given,  ifconfig  displays the status of the currently active interfaces.  If a single
           interface argument is given, it displays the status of the given interface only; if a single  -a  argument  is
           given, it displays the status of all interfaces, even those that are down.  

    ifconfig命令的主要作用是进行网卡配置,但是如果没有给定参数或者只是给定了网卡名称这一个参数,则就会显示网卡的状态信息。

    因此,在这里,我们通过参数eth0来指定输出该网卡的信息

    grep命令部分说明

    我们先看一下ifconfig的输出格式:

    eth0      Link encap:Ethernet  HWaddr 08:00:27:f6:18:8e  
              inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
              inet6 addr: fe80::a00:27ff:fef6:188e/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:12575 errors:0 dropped:0 overruns:0 frame:0
              TX packets:3429 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:1931585 (1.9 MB)  TX bytes:465667 (465.6 KB)

    其中红色部分中包含了MAC地址信息,蓝色部分包含了IPv4的地址信息。而如果我们指定的网卡不存在时,则输出信息如下:

    nfer@nfer:~$ ifconfig eth1
    eth1: error fetching interface information: Device not found

    因此在上面的命令中,我们分别使用grep "inet addr:"和grep "HWaddr"来过滤出IPv4的地址和MAC地址所在的行,如果是该网卡不存在或者不处于活动状态就过滤不到对应的行。

    awk命令和cut命令部分说明

    在上面的grep命令过滤出来的MAC地址和IPv4地址所在行的格式如下:

    eth0      Link encap:Ethernet  HWaddr 08:00:27:f6:18:8e  
              inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0

    因此,如果是获取MAC地址,只需要使用awk输出第5个字段的值即可:awk '{print $5}';

    而如果是要获取IPv4的地址,则需要先输出第2个字段的值:awk '{print $2}',然后再使用cut命令,将"addr:"这5个字符去除,即从第6个字符到结尾的所有字符:cut -c 6-。

    其中cut命令的-c参数以及后面的需要显示的字符列表的表述方式的描述如下:

           -c, --characters=LIST
                  select only these characters


           Use one, and only one of -b, -c or -f.  Each LIST is made up of one range, or many ranges separated by commas.
           Selected  input  is written in the same order that it is read, and is written exactly once.  Each range is one of:
           N      N'th byte, character or field, counted from 1
           N-     from N'th byte, character or field, to end of line
           N-M    from N'th to M'th (included) byte, character or field
           -M     from first to M'th (included) byte, character or field

    我们这里是按照字符操作的,所以使用了-c参数;需要显示的是从第6个字符到结尾的部分,所以使用了N-的模式表示LIST。

    总结

    本次一句话脚本使用到了以下知识:

    1. ifconfig命令
    2. grep命令
    3. awk命令
    4. cut命令的-c参数
    展开全文
  • 在晚上找了不少资料都没有获取到正确的mac地址,最终还是自己实现了,记录一下 [root@localhost ~]# ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.141.0.15 netmask ...

    在晚上找了不少资料都没有获取到正确的mac地址,最终还是自己实现了,记录一下

    [root@localhost ~]# ifconfig eth0
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.141.0.15  netmask 255.255.255.0  broadcast 10.141.0.255
            inet6 fe80::20c:29ff:feb8:d2d2  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:b8:d2:d2  txqueuelen 1000  (Ethernet)
            RX packets 417097  bytes 29679708 (28.3 MiB)
            RX errors 0  dropped 1034  overruns 0  frame 0
            TX packets 243107  bytes 607268262 (579.1 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    [root@localhost ~]# ifconfig eth0|grep ether|awk '{print $2}'
    00:0c:29:b8:d2:d2

    shell脚本如下:

    #!/bin/sh
    mac=$(ifconfig eth0|grep ether|awk '{print $2}')
    echo "$mac">mac.txt

     

    展开全文
  • linux中网络设备eth0消失解决!

    千次阅读 2019-05-26 22:29:55
    这个问题多发于在虚拟机克隆之后,导致的虚拟网卡“eth0”消失,以至于无法自己设置想要的静态ip,这对于我们写配置文件和使用一些快速连接工具来说是不利的,那么为什么会出现这个问题呢? 原因 因为克隆生成的...

    这个问题多发于在虚拟机克隆之后,导致的虚拟网卡“eth0”消失,以至于无法自己设置想要的静态ip,这对于我们写配置文件和使用一些快速连接工具来说是不利的,那么为什么会出现这个问题呢?

    原因

    因为克隆生成的虚拟机拥有和原来虚拟机相同的硬件地址,这样会引起冲突,因此会生成另外一个硬件地址到eth1,默认使用eth1,因此要继续使用eth0的话,就要用eth1所持有的新的物理地址

    解决:

    方法一:eth1的硬件地址修改到eth0的硬件地址上面,使得eth0拥有当前虚拟机的独有的硬件地址。

    方法二(推荐):修改(如果已经手滑删除了,就vi创建一个,把下面内容复制进去,设定为适合自己网络环境的属性)

    /etc/sysconfig/network-script/ifcfg-eth0

    将其中的硬件地址属性UUID  HWADDR行删掉,这个时候配置文件长这样

    DEVICE=eth0 //硬件设备名称
    BOOTPROTO=static //将IP设置为静态IP,这样就不会每次自动获取而变化
    IPADDR=192.168.25.100 //IP
    NETMASK=255.255.255.0 //掩码
    GATEWAY=192.168.25.2 //网关
    ONBOOT=yes //是否开机加载,是

    然后执行

    rm -rf  /etc/udev/rules.d/70-persistent-net.rules

    然后

    reboot

    重新启动会重新生成rules文件,再执行eth0会发现,一切都回来辣!

    展开全文
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。 umount 1.作用 umount命令的作用是卸载一个文件系统,它的使用权限是超级...
  • Linux-ifcfg-eth0配置介绍

    2020-06-01 14:18:18
    CentOS Linux release 7.7.1908 (Core) 网卡配置目录 CentOS7默认网卡设备文件存放于 /etc/sysconfig/network-scripts/ 参数介绍 使用 /etc/sysconfig/network-scripts/ifcfg-eth0 举例 NAME="eth0" # 物理设备...

    环境信息

    [root@suhw-host ~]# cat /etc/redhat-release 
    CentOS Linux release 7.7.1908 (Core)
    

    网卡配置目录

    CentOS7默认网卡设备文件存放于

    /etc/sysconfig/network-scripts/
    

    参数介绍

    使用 /etc/sysconfig/network-scripts/ifcfg-eth0 举例

    NAME="eth0"
    
    # 物理设备名称,与 ifcfg-eth0 对应
    DEVICE="eth0"
    
    # 是否开机启动
    ONBOOT="yes"
    
    # 网卡类型为以太网
    TYPE="Ethernet"
    
    # 代理方式
    PROXY_METHOD="none"
    
    # 是否网络启动时加载
    NETBOOT="yes"
    
    # 网卡的引导协议
    BOOTPROTO="static"
    
    # ip 地址
    IPADDR="10.47.119.96"
    
    # 掩码
    NETMASK="255.255.255.128"
    
    # 网关地址
    GATEWAY="10.47.119.1"
    
    # 网卡DNS地址
    DNS1="114.114.114.114"
    
    #网卡MAC地址
    HWADDR=
    
    #是否只是浏览器
    BROWSER_ONLY="no"
    
    #子网掩码位数
    PREFIX="25"
    
    # 设置为默认路由
    DEFROUTE="yes"
    
    # 如果IPV4配置失败,则禁用此接口。
    IPV4_FAILURE_FATAL="no"
    
    
    
    #IPV6相关
    # 是否启用ipv6的接口
    IPV6INIT="yes"
    
    # IPV6地址是否自动配置
    IPV6_AUTOCONF="yes"
    
    # 是否设置IPV6网关
    IPV6_DEFROUTE="yes"
    
    # 如果IPV6配置失败,则禁用此接口。
    IPV6_FAILURE_FATAL="no"
    
    # 生成ipv6地址的方式  stable-privacy是一种生成IPV6的策略
    IPV6_ADDR_GEN_MODE="stable-privacy"
    

    IP地址获取

    IPADDRNETMASK可通过ifconfig $NAME获取,如下:

    [root@csmp-standalone network-scripts]# ifconfig eth0
    ...
    

    MAC地址获取

    网卡对应MAC地址可通过ip addr获取

    [root@suhw ~]# ip addr
    ...
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 
        ...
    

    link/ether即为对应网卡的MAC地址


    网关地址

    查看网关地址可以使用route -n,下述配置中10.91.156.161即为网关地址

    [root@suhw-host ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.91.156.161   0.0.0.0         UG    100    0        0 eth0
    10.91.156.160   0.0.0.0         255.255.255.224 U     100    0        0 eth0
    

    启动与关闭网卡

    关闭

    ifdown eth0
    

    启动

    ifup eth0
    

    以上操作均使用eth0举例



    网络服务操作

    重启网络

    [root@suhw ~]# systemctl restart network	
    

    查看网络状态

    [root@suhw ~]# systemctl status network
    

    关闭网络

    [root@suhw ~]# systemctl start network
    
    展开全文
  • Linux 交换eth0和eth1

    2015-11-05 11:18:00
    一、参考文档: 如何交换eth0和eth1? http://bbs.chinaunix.net/archiver/tid-2026056.html 二、具体操作 #echo `ifconfig -a` ifconfig eth0 down ifconfig eth1 down ip li...
  • linux下的网卡eth0配置详解

    万次阅读 2015-10-19 19:33:53
     Linux系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活。 # ifconfig eth0 up 第二步:设置网卡进入系统时启动   想要每次开机就可以自动获取IP地址上网,就要设置网络服务在系统启动时也启动...
  • the RH9 on VMWare Eth0 "...I am not able to setup my eth0 on RH linux 9 installed on a vmware GSX server 3. I recieve the error message : Determining IP information for eth0... Fai...
  • Windows/Linux获取Mac地址和CPU序列号实现

    千次阅读 多人点赞 2020-09-29 19:53:44
    UUID(Universally Unique Identifier)即通用唯一标识符,是指在一台机器上生成的数字,保证在全球范围的唯一...一般可通过获取设备的MAC地址+设备的CPU序列号作为设备的唯一标识符。 MAC地址(Media Access Control Ad
  • Linux获取指定网卡的IP和MAC地址

    万次阅读 2019-03-10 18:10:28
    Linux获取指定网卡的IP和MAC地址 一、使用场景 我使用的Linux服务器上有多个网卡,有时候就需要在脚本中使用到指定网卡的IP地址或MAC地址,那么这个时候就有两种做法,一是预先读取网卡的IP地址或MAC地址,然后...
  • 面试专题:Linux运维精华面试题

    千次阅读 多人点赞 2019-03-14 15:31:53
    下面是一名资深Linux运维求职数十家公司总结的Linux运维面试精华,助力大家跳槽找个高薪好工作。 1、什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与...
  • 新安装linux系统,网卡不能自动激活去获取ip,每次都需要手工执行以下命令 ifup eth0 后续通过将ONBOOT=yes这句就能开机启动自动激活,就可以解决问题 vim /etc/sysconfig/network-scripts/ifcfg-eth0 转载于:...
  • Linux环境下获取网卡连接状态

    千次阅读 2013-05-10 16:59:01
    在嵌入式项目中,有时需要获取设备本身的一些运行信息,网口的连接状态就是其中之一,这还真不太好弄,网上查了一下资料,整理了一下,pIfName为网口名称,比如eth0, 返回1为连接,0为断开。 int getNetLinkStates...
  • java获取linux服务器IP

    千次阅读 2019-10-26 09:24:31
    在项目开发过程中,需要获取linux服务器ip作为zookeeper节点名称,原先使用的是以下的方法: public static String getIpAddress() { String hostAddress = ""; try { InetAddress address = InetAddress....
  • Linux下如何获取网卡信息

    千次阅读 2017-03-17 16:44:45
    分类: Linux/Unix 有时候,写程序的时候需要获取计算机的网络信息,比如IP地址、电脑名称、DNS等信息。IP地址和电脑名称是比较容易获取到的,而要想获取地址掩码、DNS、网关等信息就有些麻烦了。 ...
  • 一、局域网主机开机自动获取IP地址 安装好base base-devel后,默认开机是获取不了IP地址,需要启动dhcpcd服务 输入如下命令可开机自动获取IP地址: sudo systemctl enable dhcpcd 二、RP-PPPoE 拨号上网 1、...
  • Linux获取硬件信息

    2020-05-18 11:11:03
    Linux获取硬件信息1. CPU(cat /proc/cpuinfo)2 操作系统3. 内存(cat /proc/meminfo )4. 硬盘(fdisk -l)5. 网卡6. 32位 or 64位7. 更多(dmidecode) 因为有时候会用到,写到这里算记录了吧! 1. CPU(cat /proc/...
  • 本文介绍在unix环境下获取当前主机IP,MAC地址等网络接口信息。在不确定设备网卡类型的情况下,通过预先定义几种可能的网卡类型,然后依次遍历可能的设备如eth0,eth1,借助ioctl函数获取主机的全部网络接口信息。
  • linux获取本机网卡名和IP #include <stdio.h> #include <sys/types.h> #include <ifaddrs.h> #include <netinet/in.h> #include <string.h> #include <arpa/inet.h> int ...
  • 现阶段手头的一个自研的流式计算平台在完善监控体系,对机器资源负载、机器上任务资源消耗进行统计和上报,这里对Linux获取网卡上限的方法进行梳理。 说明:这里的网卡最大带宽指的是物理网卡的带宽最大值 现...
  • 一句话脚本完成获取指定网卡的IPv4的地址或MAC地址的功能。
  • Linux常用命令全集

    千次阅读 多人点赞 2013-01-22 13:40:35
    引言:最近被要求写shell备份数据库,个人觉得Linux的操作还是极为重要的,所以转载了别人比较好的文章,留作后用! Linux常用命令全集 http://www.jb51.net/linux/ 系统信息 arch 显示机器的处理器架构(1) ...
  • Linux运维面试题

    千次阅读 2019-08-02 12:57:30
    Linux运维跳槽必备的40道面试精华题(转) 下面是一名资深Linux运维求职数十家公司总结的Linux运维面试精华,助力大家年后跳槽找个高薪好工作。 1、什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络...
  • 修复kali异常关机无法获取IP地址
  • linux设备硬件信息的获取

    千次阅读 2018-06-07 17:40:24
    linux设备硬件信息的获取 摘要: 本文主要分析了在linux设备上采集相关的硬件信息,并给出了java实现的方法。然后模拟了“玩客云”的场景,摘取了部分关键信息,上传至服务器。 关键技术: linux命令行返回值的...
  • linux获取网络信息

    千次阅读 2017-07-17 16:36:18
    Linux系统中,ifconfig命令是通过ioctl接口与内核通信,例如,当系统管理员输入如下命令来改变接口eth0的MTU大小:  ifconfig eth0 mtu 1250 ifconfig命令首先打开一个socket,然后通过系统管理员输入的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,563
精华内容 6,625
关键字:

linklinux获取eth

linux 订阅