新闻详情

新闻详情

首页 / 资讯中心 / 详情

运维自动化之实用python代码汇总

发布时间:2026/10/1 11:00:11来源:尧图网络
运维自动化之实用python代码汇总
这篇文章针对运维这一项工作, 对其内经常使用的一系列实用代码块进行了总结, 从而形成了一种情况,即使用者在遇到相应需求之时, 能够将这些内容直接搬运过来加以应用。1.执行系统命令, 获取返回结果。from subprocess import Popen, PIPE, STDOUTcp Popen(dir, stdoutPIPE, stderrSTDOUT, shellTrue)infostr(cp.stdout.readline().decode())print(info)2.我们对时间信息进行了处理, 同时还完成了格式的转换工作。#当前时间格式化import datetime,timedatadatetime.datetime.now().strftime(%Y-%m-%d %H:%M:%S)print(data) #2020-02-05 10:22:17#格式化转timeStampdatatime.mktime(time.strptime(2020-07-09T14:49:51Z, %Y-%m-%dT%H:%M:%SZ))print(data) #1594277391.0#timeStamp转格式化import datetimedatadatetime.datetime.fromtimestamp(1551576293.0).strftime(%Y-%m-%d %H:%M:%S)print(data) #2019-03-03 09:24:53#时间差import timedata int(time.time())-int(time.mktime(time.strptime(2020-07-09T14:49:51Z, %Y-%m-%dT%H:%M:%SZ)))print(data) #345s#格式化时间加减datadatetime.datetime.fromtimestamp(time.mktime(time.strptime(2013-10-10 23:40:00, %Y-%m-%d %H:%M:%S))8*3600).strftime(%Y-%m-%d %H:%M:%S)print(data) #2013-10-11 07:40:003.通过钉钉应用将相关信息以消息的形式发送出来。写这段代码, 主要是使用自带的包, 而不是使用的意思, 本着能使用自带的, 就不使用其他的原则。##############python3############################from urllib import requestimport os,jsondef DingDing(msg):urlhttps://oapi.dingtalk.com/robot/send?access_tokenxxxxxxxxxdata {msgtype: text, text: {content: %s\n脚本路径:%s % (msg,os.path.realpath(__file__))}, at: {atMobiles: [xxxxxxxx], isAtAll: False}}req request.Request(urlurl,datajson.dumps(data).encode(utf-8),headers{Content-Type: application/json},methodPOST)response request.urlopen(req)return response.read().decode()##############python2############################import urllib2,jsondef DingDing(msg):urlhttps://oapi.dingtalk.com/robot/send?access_tokenxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdata {msgtype: text, text: {content: msg}, at: {atMobiles: [xxxxxxxxxxxxxxx], isAtAll: False}}request urllib2.Request(urlurl,headers{Content-Type:application/json},datajson.dumps(data))response urllib2.urlopen(request)return response.read()4.日志配置####日志自动切割import time,sys,os,loggingfrom logging.handlers import RotatingFileHandlerlog_obj logging.getLogger()fileHandle logging.handlers.TimedRotatingFileHandler(os.path.join(sys.path[0], cron_ops.log),whend,interval1,backupCount10)fileHandle.setFormatter(logging.Formatter(%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s))log_obj.addHandler(fileHandle)log_obj.info(日志内容)####日志打印到控制台import time,sys,loggingconsole_log logging.getLogger()console_log.setLevel(logging.INFO)streamHandle logging.StreamHandler()streamHandle.setFormatter(logging.Formatter(%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s))console_log.addHandler(streamHandle)console_log.info(日志打印)5.关于加解密所使用的代码。这段代码本身也具备处理中文文本进行加密与解密的功能, 所以在正式开始使用它之前, 你需要先去把相关的安装包给安装完毕。#pip3 install pycryptodome #https://pypi.tuna.tsinghua.edu.cn/simple/cryptography/from Crypto.Cipher import DES3import base64class EncryptData:def __init__(self):self.key 5YIGo8frLeqUAewDo2AVkNKUself.iv bxluhjoLDself.length DES3.block_sizeself.unpad lambda date: date[0:-ord(date[-1])]def pad(self, text):count len(text.encode(utf-8))add self.length - (count % self.length)entext text (chr(add) * add)return entextdef encrypt(self, encrData):self.des3 DES3.new(self.key, DES3.MODE_CBC, self.iv)res self.des3.encrypt(self.pad(encrData).encode(utf8))msg str(base64.b64encode(res), encodingutf8)return msgdef decrypt(self, decrData):self.des3 DES3.new(self.key, DES3.MODE_CBC, self.iv)res base64.decodebytes(decrData.encode(utf8))msg self.des3.decrypt(res).decode(utf8)return self.unpad(msg)eg EncryptData()res eg.encrypt(13918密钥的长度必须是16238353)print(res) ####YtO3hoYxnohOtWgH2UrYh1nDZ58QmksVbWLVDBJVg4kfaQWASCzAwprint(eg.decrypt(res)) ####13918密钥的长度必须是162383536.字典key转对象class selfAttrDict(dict):def __setattr__(self, key, value):self.__setitem__(key, value)def __getattr__(self, item):return self.__getitem__(item)def __delattr__(self, item):self.__delitem__(item)dicrs{name:dfddfdffd}ssselfAttrDict(dicrs)print(ss.name) ####dfddfdffd
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

PowerBI动态排名实现:RANKX与参数表驱动交互式排名看板 2026/10/1 11:50:49

PowerBI动态排名实现:RANKX与参数表驱动交互式排名看板

做排名分析是PowerBI里最常见的需求之一,但你有没有遇到过这种情况:业务总监说"我要看销售额排名前10的客户",刚做完,他又说"改成前20吧",过了两天又变成"我想自己选,能动态切换吗…

阅读更多 →
Vue实战:可拖拽缩放在线选座系统与A/B/C分区座位设计 2026/10/1 11:50:49

Vue实战:可拖拽缩放在线选座系统与A/B/C分区座位设计

从第一次接到“做一个影院在线选座页面”的需求时,我就知道这活儿没表面看起来那么轻松。单纯画一个座位图很简单,真正麻烦的是后面那几个词:可拖拽、可缩放,还要把A/B/C三级座位分得清清楚楚。这篇文章就是我把这个Vue项目从零到…

阅读更多 →
openclaw重启实战:从systemd到Docker的完整排查指南 2026/10/1 11:50:49

openclaw重启实战:从systemd到Docker的完整排查指南

1. 为什么“重新启动”会成为 openclaw 的日常操作先说个场景:我是在一台 Ubuntu 服务器上用一键部署脚本装的 openclaw,当时图省事,一切按默认配置跑起来。最初一两个月相安无事,直到有一次我改了配置文件里的模型参数&#xff0…

阅读更多 →
Python好学吗?答案来了 2026/10/1 11:50:49

Python好学吗?答案来了

这门语言比较好学, 是一门非常适合初学者使用的编程语言, 特别是对于那些完全没有编程经验的人而言, 它的语法非常简洁而且也很清晰, 它更接近于我们日常所使用的自然语言, 这种特点有助于让初学的人能够更轻松地去理解和掌握这个知识点, 这样的设计理念使得学习的过程变得相对…

阅读更多 →
2026夏季大数据实践课:从零搭建网约车全链路分析项目 2026/10/1 11:50:49

2026夏季大数据实践课:从零搭建网约车全链路分析项目

1. 这门课到底是什么,为什么值得预报 如果你这几天在学院群里看到《2026夏季学期大数据实践课》预报名通知,第一反应大概率是“又来一个占学分的选修”。我一开始也这么想,但看完培养方案、和负责老师聊了一轮之后,发现这门课和传…

阅读更多 →
Univer表格SDK实战:Canvas渲染与Node.js实现单元格级权限控制 2026/10/1 11:50:43

Univer表格SDK实战:Canvas渲染与Node.js实现单元格级权限控制

1. 从一张“只能填指定格子”的表格说起 第一次接触 Univer 是在一个内部数据填报系统的需求评审上。业务方的诉求听起来特别朴素:给一张类似 Excel 的表格,让填报人只能改其中几列,其他列锁死,改完提交,后台校验。当时…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉