01-日常管理腳本-環境劃分;
阿新 • • 發佈:2018-07-20
圖片 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-日常管理腳本-環境劃分;