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'] + "\n"
                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'] + "\n"
                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'] + "\n"
                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'] + "\n"
                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")


猜你喜欢

转载自blog.51cto.com/breaklinux/2147819
01-