01-日常管理脚本-环境划分;
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01-日常管理脚本-环境划分;相关的知识,希望对你有一定的参考价值。
1.脚本功能介绍, 1.读取CMD系统IP地址,进行批量内网环境划分; 2.使用正则进行替换; # -*- coding: utf-8 -*- 1.文件操作模式介绍; 模式描述 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 2.json 模块方法介绍; JSON(javascript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。 json.dumps 将 Python 对象编码成 JSON 字符串 json.loads 将已编码的 JSON 字符串解码为 Python 对象 3.urlib 模块方法介绍; https://docs.python.org/2/library/urllib.html#详细参考python 官网 python3
4.根据CMDB 接口提供json 数据,进行拆分处理ip地址,正则匹配出现 环境对应环境的网段 如下: 54 docker-dev 58 docker-test 46 虚拟机-dev 47 虚拟机-test import json import re import urllib class Operation_IP_Private(object): def VirtualMachine_Dev(self, url, parameter01, parameter02, parameter03): ####初始化4个参数传入### with open('/root/VirtualMachine_Dev.txt', 'w') as f: #####打开本地文件,已 ip_list = [] ip_rege = re.compile(r"(?<![d.])%s.%s.%s[6-6].(.*)" % (parameter01, parameter02, parameter03)) weatherHtml = urllib.urlopen(url) weatherHtml1 = weatherHtml.read() weatherJSON = json.loads(weatherHtml1) for i in weatherJSON["data"]: abc = i['privateIpAddress'] + " " ip_list.append(abc) for b in ip_list: if re.search(ip_rege, b): f.write(b) def VirtualMachine_test(self, url, parameter01, parameter02, parameter03): with open('/root/VirtualMachine_test.txt', 'w') as f: ip_list = [] ip_rege = re.compile(r"(?<![d.])%s.%s.%s[7-7].(.*)" % (parameter01, parameter02, parameter03)) weatherHtml = urllib.urlopen(url) weatherHtml1 = weatherHtml.read() weatherJSON = json.loads(weatherHtml1) for i in weatherJSON["data"]: abc = i['privateIpAddress'] + " " ip_list.append(abc) for b in ip_list: if re.search(ip_rege, b): f.write(b) def Docker_Dev_IpAddress(self, url, parameter01, parameter02, parameter03): with open('/root/Docker_Dev_IpAddress.txt', 'w') as f: ip_list = [] ip_rege = re.compile(r"(?<![d.])%s.%s.%s[4-4].(.*)" % (parameter01, parameter02, parameter03)) weatherHtml = urllib.urlopen(url) weatherHtml1 = weatherHtml.read() weatherJSON = json.loads(weatherHtml1) for i in weatherJSON["data"]: abc = i['privateIpAddress'] + " " ip_list.append(abc) for b in ip_list: if re.search(ip_rege, b): f.write(b) def Docker_Test_IpAddress(self, url, parameter01, parameter02, parameter03): with open('/root/VirtualMachine_test.txt', 'w') as f: ip_list = [] ip_rege = re.compile(r"(?<![d.])%s.%s.%s[8-8].(.*)" % (parameter01, parameter02, parameter03)) weatherHtml = urllib.urlopen(url) weatherHtml1 = weatherHtml.read() weatherJSON = json.loads(weatherHtml1) for i in weatherJSON["data"]: abc = i['privateIpAddress'] + " " ip_list.append(abc) for b in ip_list: if re.search(ip_rege, b): f.write(b) IP_address = Operation_IP_Private() IP_address.VirtualMachine_Dev("http://172.17.37.93:1949/vserver/select", "192", "168", "4") IP_address.VirtualMachine_test("http://172.17.37.93:1949/vserver/select", "192", "168", "4") IP_address.Docker_Dev_IpAddress("http://172.17.37.93:1949/vserver/select", "192", "168", "5") P_address.Docker_Test_IpAddress("http://172.17.37.93:1949/vserver/select", "192", "168", "5")
以上是关于01-日常管理脚本-环境划分;的主要内容,如果未能解决你的问题,请参考以下文章