windows設定開機啟動指令碼修改配置檔案和重啟服務
阿新 • • 發佈:2018-12-19
有一臺動態ip的測試機器,上面部署Nginx,然後每次重啟機器後ip總會變動,需要改nginx.conf配置檔案和重啟nginx服務。
所以要解決這個問題,想到的解決方法:
1、python指令碼來解決修改配置和重啟服務
2、把python指令碼製作成exe檔案
3、exe指令碼新增為開機啟動
一、python指令碼
# -*- coding:UTF-8 -*- import re import os def checkconf(): r = os.popen("ipconfig /all") text = r.read() r.close() result = text pat = "(\d+\.\d+\.\d+\.\d+)" myaddr = re.findall(pat, result)[0] print myaddr #匹配ip地址 pattern = re.compile(r'\d+\.\d+\.\d+\.\d+') #設定flag判斷是否需要改檔案和重啟 flag = False #替換nginx.conf中的ip為靶機伺服器ip地址 #將檔案讀取到記憶體中 with open("C:\Program Files\\nginx\\conf\\nginx.conf","r") as f: lines = f.readlines() for line in lines: result = pattern.findall(line) if len(result) > 0: if (result[0]) == myaddr: flag = True break if flag == True: #寫的方式開啟檔案 with open("C:\Program Files\\nginx\\conf\\nginx.conf","w") as f_w: for line in lines: result = pattern.findall(line) if len(result) > 0: print result #替換 line = line.replace(result[0],myaddr) f_w.write(line) #替換ip地址後重啟nginx服務 #os.system('C:\Program Files\\nginx\\nginx-service.exe restart') r = os.popen("nginx-service.exe restart") text = r.read() r.close() print text else: pass if __name__ == '__mian__': checkconf()
二、使用pyinstaller製作成exe檔案
python pyinstaller.py -F checkconf.py
三、新增為開機計劃
記得設定為伺服器啟動時執行指令碼,並且設定為管理員許可權。否則C盤檔案無法寫入
重啟測試OK