这篇文章给大家分享的是有关python常用的运维脚本的介绍,小编觉得挺实用的,因此分享给大家学习,话不多说,一起往下看吧。
1.获取外网ip
#!/usr/bin/env python -*- coding:utf-8 -*- Time: 2019/12/20 10:05 import socket import requests,re #方法一 text=requests.get("").text ip=re.findall(r'\d+.\d+.\d+.\d+',text) #方法二 ipqwb = socket.getaddrinfo('', '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()郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。