這篇文章給大家分享的是有關(guān)python常用的運(yùn)維腳本的介紹,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),話(huà)不多說(shuō),一起往下看吧。
員工經(jīng)過(guò)長(zhǎng)期磨合與沉淀,具備了協(xié)作精神,得以通過(guò)團(tuán)隊(duì)的力量開(kāi)發(fā)出優(yōu)質(zhì)的產(chǎn)品。成都創(chuàng)新互聯(lián)堅(jiān)持“專(zhuān)注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩?zhuān)注所以專(zhuān)業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專(zhuān)注于為企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、電商網(wǎng)站開(kāi)發(fā),微信小程序開(kāi)發(fā),軟件按需開(kāi)發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。1.獲取外網(wǎng)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("本機(jī)外網(wǎng)IP: " + ip[0])
print("qwb IP: " + nowIp)
2.生成隨機(jī)密碼:
#!/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('請(qǐng)確認(rèn)要生成幾條密碼: ')
list_passwds = []
for i in range(int(count)):
#密碼位數(shù)為N+3,例如下面就是5+3=8位密碼
list_passwd_all = random.sample(src, 5) #從字母和數(shù)字中隨機(jī)取5位
list_passwd_all.extend(random.sample(string.digits, 1)) #讓密碼中一定包含數(shù)字
list_passwd_all.extend(random.sample(string.ascii_lowercase, 1)) #讓密碼中一定包含小寫(xiě)字母
list_passwd_all.extend(random.sample(string.ascii_uppercase, 1)) #讓密碼中一定包含大寫(xiě)字母
random.shuffle(list_passwd_all) #打亂列表順序
str_passwd = ''.join(list_passwd_all) #將列表轉(zhuǎn)化為字符串
if str_passwd not in list_passwds: #判斷是否生成重復(fù)密碼
list_passwds.append(str_passwd)
print(list_passwds[i])
#print(list_passwds)
passwd()
3.發(fā)送郵件:
#!/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'] # 可以不用添加自己的郵箱,添加為了防止系統(tǒng)認(rèn)為是垃圾郵箱發(fā)送失敗會(huì)報(bào)錯(cuò)
body = '郵件內(nèi)容'
title = '郵件標(biāo)題'
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.基礎(chǔ)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") #向文件中發(fā)送內(nèi)容,有自己默認(rèn)的日志格式
ch=logging.StreamHandler() #向屏幕發(fā)送文件,有自己默認(rèn)的日志格式
fm=logging.Formatter("%(asctime)s %(message)s") #定義自己的日志格式
fh.setFormatter(fm) #添加自定義的日志格式,如果不添加會(huì)用自己默認(rèn)的日志格式
ch.setFormatter(fm)
logger.addHandler(fh) #顯示出fh,ch的日志
logger.addHandler(ch)
logger.setLevel("DEBUG") #定義日志級(jí)別
return logger # 返回函數(shù)對(duì)象
logger=logger() #調(diào)用函數(shù)
logger.debug("hello 1") #打印日志
logger.info("hello 2")
logger.warning("hello 3")
logger.error("hello 4")
logger.critical("hello 5")
5.查看本地端口是否開(kāi)放:
#!/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.裝飾器調(diào)用一次使函數(shù)執(zhí)行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.可變參數(shù)定義*args, **kwargs的區(qū)別
#!/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常用的運(yùn)維腳本介紹,雖然從篇幅上看很復(fù)雜,但是示例代碼非常詳細(xì)且容易理解,如果想了解更多相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。