温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python常用运维脚本怎么写

发布时间:2021-09-26 16:35:57 来源:亿速云 阅读:276 作者:柒染 栏目:系统运维

这篇文章给大家介绍python常用运维脚本怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

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常用运维脚本怎么写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI