IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> python 修改ubuntu 的ip -> 正文阅读

[系统运维]python 修改ubuntu 的ip

先补充子网掩码的计算:如255.255.255.0计算为24(11111111.11111111.11111111.0)二进制有24个1,代码如下:

netmask = '255.255.255.0'
result = ""
for num in netmask.split('.'):
  temp = str(bin(int(num)))[2:]
  result = result + temp
print (len("".join(str(result).split('0')[0:1])))

所以ubuntu的ip地址表现形式:

192.168.1.112/24

把地址和掩码一起表示了

ubuntu用的是netplan(不同版本有所不用),所以改/etc/netplan/01-network-manager-all.yaml这个文件即可,改完执行netplan apply命令。

报错Permission denied:

由于该文件是只读的,所以要想通过代码修改,还要修改一下文件的权限chmod 557 /etc/netplan/01-network-manager-all.yaml。也可以干脆点chmod 777.

该文件的格式是yml,所以要安装yaml install

完整代码如下:

# netmask = '255.255.255.0'
# result = ""
# for num in netmask.split('.'):
#   temp = str(bin(int(num)))[2:]
#   result = result + temp
# print (len("".join(str(result).split('0')[0:1])))

import yaml,os
path = "/etc/netplan/01-network-manager-all.yaml"
def sudoCMD(command,password):
    str = os.system('echo %s | sudo -S %s' % (password,command))
    print(str)


sudoCMD('chmod 557 '+ path,'1234')

with open(path, mode='w', encoding='utf-8') as f:
    f.truncate()

def add_dict():
    data = {'network':{}}
    data['network']['version'] = 2
    data['network']['renderer'] = "networkd"
    data['network']['ethernets'] = {}
    data['network']['ethernets']['eno1'] = {'addresses':['192.168.1.112/24'],'dhcp4':'no','optional':"true",
                     'gateway4':"192.168.1.254",'nameservers':{'addresses':['8.8.8.8','114.114.114.114']}}
    # data['network']['ethernets']['ens22'] = {'addresses':['192.168.31.215/24'],'dhcp4':'no','optional':"true",
    #                  'gateway4':"192.168.31.1",'nameservers':{'addresses':['192.168.31.1,114.114.114.114']}}
    file = open(path, 'a', encoding='utf-8')
    yaml.dump(data, file)
    file.close()
add_dict()

with open(path, "r",encoding='utf-8') as yaml_file:
    yaml_obj = yaml.load(yaml_file.read(), Loader=yaml.FullLoader)
    print(yaml_obj)
    # main_yaml = open(path, 'w')
    # yaml.dump(yaml_obj, main_yaml)
    # main_yaml.close()


sudoCMD('sudo netplan apply','1234')

网络参数都在代码中,封装以下即可。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 09:04:54  更:2022-04-30 09:07:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:28:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码