這篇文章給大家介紹python常用運維腳本怎么寫,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
在網站設計制作、成都網站設計中從網站色彩、結構布局、欄目設置、關鍵詞群組等細微處著手,突出企業的產品/服務/品牌,幫助企業鎖定精準用戶,提高在線咨詢和轉化,使成都網站營銷成為有效果、有回報的無錫營銷推廣。成都創新互聯專業成都網站建設10年了,客戶滿意度97.8%,歡迎成都創新互聯客戶聯系。
1.獲取外網ip
#!/usr/bin/env python -*- coding:utf-8 -*- Time: 2019/12/20 10:05 import socket import requests,re #方法一 text=requests.get("http://txt.go.sohu.com/ip/soip").text ip=re.findall(r'\d+.\d+.\d+.\d+',text) #方法二 ipqwb = socket.getaddrinfo('www.baidu.com', 'http') #獲取指定域名的A記錄 nowIp = (ipqwb[0][4][0]) # 賦值 print("本機外網IP: " + ip[0]) print("qwb IP: " + nowIp)
2.生成隨機密碼:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Time: 2019/11/21 11:43 import random,string def passwd(): src = string.ascii_letters + string.digits count = input('請確認要生成幾條密碼: ') list_passwds = [] for i in range(int(count)): #密碼位數為N+3,例如下面就是5+3=8位密碼 list_passwd_all = random.sample(src, 5) #從字母和數字中隨機取5位 list_passwd_all.extend(random.sample(string.digits, 1)) #讓密碼中一定包含數字 list_passwd_all.extend(random.sample(string.ascii_lowercase, 1)) #讓密碼中一定包含小寫字母 list_passwd_all.extend(random.sample(string.ascii_uppercase, 1)) #讓密碼中一定包含大寫字母 random.shuffle(list_passwd_all) #打亂列表順序 str_passwd = ''.join(list_passwd_all) #將列表轉化為字符串 if str_passwd not in list_passwds: #判斷是否生成重復密碼 list_passwds.append(str_passwd) print(list_passwds[i]) #print(list_passwds) passwd()
3.發送郵件:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Time: 2019/11/15 17:18 import smtplib from email.mime.text import MIMEText from time import sleep from email.header import Header host = 'smtp.163.com' port = 25 sender = 'xxxx@163.com' pwd = 'xxxxx' receiver = ['22222222@qq.com', 'xxxxxxxx@163.com'] # 可以不用添加自己的郵箱,添加為了防止系統認為是垃圾郵箱發送失敗會報錯 body = '郵件內容' title = '郵件標題' def sentemail(): msg = MIMEText(body, 'plain', 'utf-8') msg['subject'] = Header(title, 'utf-8').encode() msg['from'] = sender msg['to'] = ','.join(receiver) try: s = smtplib.SMTP(host, port) s.login(sender, pwd) s.sendmail(sender, receiver, msg.as_string()) print ('Done.sent email success') except smtplib.SMTPException as e: print ('Error.sent email fail') print (e) if __name__ == '__main__': sentemail()
4.基礎log日志配置:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Time: 2019/11/27 13:04 import logging def logger(): logger=logging.getLogger() fh=logging.FileHandler("test.log") #向文件中發送內容,有自己默認的日志格式 ch=logging.StreamHandler() #向屏幕發送文件,有自己默認的日志格式 fm=logging.Formatter("%(asctime)s %(message)s") #定義自己的日志格式 fh.setFormatter(fm) #添加自定義的日志格式,如果不添加會用自己默認的日志格式 ch.setFormatter(fm) logger.addHandler(fh) #顯示出fh,ch的日志 logger.addHandler(ch) logger.setLevel("DEBUG") #定義日志級別 return logger # 返回函數對象 logger=logger() #調用函數 logger.debug("hello 1") #打印日志 logger.info("hello 2") logger.warning("hello 3") logger.error("hello 4") logger.critical("hello 5")
5.查看本地端口是否開放:
#!/usr/bin/env python # -*- coding:utf-8 -*- # Time: 2019/11/21 11:05 import socket port_number = [135,443,80,3306,22] for index in port_number: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = sock.connect_ex(('127.0.0.1', index)) if result == 0: print("Port %d is open" % index) else: print("Port %d is not open" % index) sock.close()
6.裝飾器調用一次使函數執行5次
#!/usr/bin/env python -*- coding:utf-8 -*- def again_func(func): def inner(*args, **kwargs): for line in range(5): func(*args, **kwargs) return inner @again_func def func1(): print("from func1...") func1()
7.可變參數定義*args, **kwargs的區別
#!/usr/bin/env python -*- coding:utf-8 -*- def foo(*args, **kwargs): print("args=:", args) print("kwargs=:", kwargs) print("-------------") if __name__ == '__main__': foo(1,2,3) foo(a=1, b=2, c=3) foo(1,2,3,a=1,b=2,c=3)
關于python常用運維腳本怎么寫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享名稱:python常用運維腳本怎么寫
分享路徑:http://vcdvsql.cn/article30/jhjgso.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、營銷型網站建設、ChatGPT、微信小程序、企業建站、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯