文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python脚本修改hosts文件

2023-01-31 05:56

关注

记一次使用python脚本来修改hosts文件,由于公司服务器需要换ip地址,服务器里都是Linux系统,而hosts文件中有些解析的ip,手动一台一台的解析太麻烦,就写了这个脚本。本来以为感觉很简单,但是写的过程真不好写,也试过shell脚本,不过也不好写。然后就直接用python写,也找了一些网上的教程,不过也没有很好的解决问题。下面把脚本贴出来记录下

#!/usr/bin/python
#coding:utf8
import os
import sys
import re

hostsfile="/etc/hosts"  #hosts文件绝对路径

ip_dict = {"1.1.1.1":"2.2.2.1","1.1.1.2":"2.2.2.2","1.1.1.3":"2.2.2.3"}  #这是自定义的字典形式为:old_ip:new_ip

ip = [] #定一个空列表,来存储old_ip的列表
Line=[] # 定一个空列表,来存储修改后的hosts文件内容的列表

fd = open(hostsfile).readlines()  #打开文件

#用for循环得到old_ip的列表
for old_ip in ip_dict.keys():
    ip.append(old_ip)

#用for循环列出每一行,并进行匹配old_ip 如果匹配到就使用re.sub()进行替换。并存储在Line这个列表中
for line in fd:
    if line.strip() == '':
        #continue
        Line.append(line) ##如果是空行也加入列表中,保证文件内容与原内容形式一致
    else:
        h_ip = line.strip().split()[0] ##取得hosts文件中的ip地址
        if h_ip in ip:
            lin = re.sub(h_ip,ip_dict[h_ip],line) #如果匹配到就进行替换
            print "文件修改的内容如下:"
            print "%s --> %s" %(line.strip("\n"),lin)
            Line.append(lin)
        else:
            Line.append(line)

#最后得到Line列表
#重新把列表的内容写入到/etc/hosts文件中
fc = open(hostsfile,'w')
fc.writelines(Line)
fc.close()


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯