1. 程式人生 > >01-日常管理腳本-環境劃分;

01-日常管理腳本-環境劃分;

圖片 data serve 二進制 .json .com too mac http

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")


01-日常管理腳本-環境劃分;