python获取/etc/sysconfig/network-scripts/网卡文件及bond名字

该Python脚本用于读取Linux系统/etc/sysconfig/network-scripts/目录下的网络配置文件,通过正则表达式筛选出以ifcfg-开头且包含数字的文件,识别bond接口并分别列出主接口和从属接口。它首先获取所有网卡文件,然后检查文件内容,判断哪些是SLAVE接口。最后将主接口、从属接口和非用户接口进行分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import os
import os.path
import re
import time
import sys
dir1 = "/etc/sysconfig/network-scripts/" 
def get_net_list():
    list_net=[]
    for wangka in os.listdir(dir1):
        r=re.search("^ifcfg-.*[0-9]$", wangka)
        if r:
            list_net.append(wangka)
    return list_net
def get_bond():
    list1=[]
    list_bond=[]
    list_wangka=[]
    list_slave=[]
        list_nouser=[]
    for wangka_net in get_net_list():
        bond_wangka=re.search("^ifcfg-b.*[0-9]",wangka_net)
        if bond_wangka:
            list_bond.append(wangka_net)
        if not re.search("^ifcfg-b.*[0-9]",wangka_net):
            list_wangka.append(wangka_net)
    for i in list_wangka:
        with open("%s%s" % (dir1,i))as wangka_file:
            wangka_flag&

<think>好的,我现在需要帮助用户理解他们提供的命令和操作步骤。首先,用户给出了两个命令:一个是复制网络配置文件,另一个是用vi编辑新文件。我需要分步骤解释这两个命令的作用,并确保他们明白每个步骤的意义和注意事项。 首先,分析第一个命令:cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36。这看起来是在复制一个网络接口的配置文件。用户可能是在设置新的网络接口ens36,基于现有的ens33配置。这时候需要确认源文件和目标路径是否正确,是否存在多余的斜杠(比如路径中的双斜杠//),这可能是个打字错误,但通常系统会自动处理,不过最好指出这一点避免用户混淆。另外,复制配置文件后,需要修改新文件中的设备名称、UUID、IP地址等信息,否则会导致冲突,比如两个接口有相同的IP或UUID,这会引起网络问题。 接下来是第二个命令:vi /etc/sysconfig/network-scripts/ifcfg-ens36。这里用户需要使用vi编辑器修改新创建的配置文件。需要解释vi的基本用法,比如进入编辑模式、保存退出等,因为新手可能不熟悉vi的操作。同时,必须强调需要修改的关键参数,如NAME、DEVICE、UUID、IP地址等。特别是UUID,如果两个接口的UUID相同,可能会导致系统无法正确识别,所以建议生成新的UUID或者删除该行,让系统自动生成。另外,如果是静态IP,需要确保IP地址、子网掩码、网关等正确;如果是DHCP,则要设置BOOTPROTO=dhcp并删除静态配置。 还要考虑用户可能的后续步骤,比如重启网络服务或系统以使配置生效,使用nmcli或ifdown/ifup命令重新加载配置。需要提醒用户在修改配置文件时的权限问题,可能需要sudo或root权限,特别是如果当前用户没有足够的权限的话。 另外,用户的问题中可能存在路径错误(双斜杠),需要指出这一点,虽然大多数情况下系统会忽略,但正确的路径更规范。同时,确保用户了解不同Linux发行版可能在网络配置文件的存放位置或命名上有所不同,比如CentOS/RHEL使用/etc/sysconfig/network-scripts/,而Debian/Ubuntu使用/etc/network/interfaces,所以需要确认用户的操作系统类型。 最后,检查是否有遗漏的步骤或常见错误,比如MAC地址是否需要更改,特别是当ens36是新增的虚拟网卡或物理网卡时,DEVICE名称必须与实际的接口名称一致。另外,提醒备份原始配置文件,以防修改出错时可以恢复。</think>以下分步解释您提供的命令操作及注意事项: ==================== 第一步:复制网卡配置文件 命令:`cp /etc/sysconfig/network-scripts//ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36` 作用分析: 1. 将现有网卡`ens33`的配置文件复制为新网卡`ens36`的配置 2. 注意路径中的双斜杠`//`是无效符号(可能为输入错误),系统会自动解析为单斜杠 3. 文件命名规则:`ifcfg-<接口名>`必须与实际网卡名称对应 关键参数修改清单: ``` DEVICE=ens36 ← 必须修改为新的接口名 NAME=ens36 ← 连接名称建议同步修改 UUID=... ← 必须删除或生成新UUID(使用`uuidgen`命令) IPADDR=192.168.x.x ← 必须修改为新IP(静态IP时需要) HWADDR=... ← 物理网卡需核对MAC地址 ``` ==================== 第二步:编辑新配置文件 命令:`vi /etc/sysconfig/network-scripts/ifcfg-ens36` vi操作指南: 1. 按`i`进入编辑模式 2. 方向键移动光标 3. 修改完成后按`Esc`退出编辑 4. 输入`:wq`保存并退出 配置注意事项: - 静态IP配置示例: ``` BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ``` - DHCP配置示例: ``` BOOTPROTO=dhcp ``` ==================== 后续操作建议: 1. 重启网络服务: ```bash systemctl restart NetworkManager ``` 2. 验证新网卡状态: ```bash ip addr show ens36 ping -I ens36 www.example.com ``` 常见错误预防: 1. 重复UUID会导致网络服务启动失败 2. IP冲突会造成网络连接异常 3. 未关闭NetworkManager时建议不要混合使用传统network服务 > 注意:CentOS 8+/RHEL 8+ 已改用nmcli管理网络,如需传统配置方式需禁用NetworkManager
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

龙在江湖aa

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

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

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

打赏作者

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

抵扣说明:

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

余额充值