Python自动化运维相关总结
1. Python开发及调试环境
1.1 Python编辑器
- Eclipse:专业的程序开发工具,需要结合pydev使用
- PyCharm:专用的Python开发工具
1.2 Python的包管理工具
- easy_install:可以用来安装、查看、卸载安装包
- pip:是easy_install的改进版,能够实现的功能更多,现在也最常用
1.3 Python编程常用工具
- IPython:提供
交互式编程
,一款强大好用的调试工具 - jupyter:基于ipython,让你可以通过浏览器进行python程序远程调试
- pyenv:方便管理不同的python版本,支持多版本python在一个系统下运行
- virtualenv:可以用来管理不同的项目,结合pyenv使用更加犀利
2.打造命令行工具
2.1 sys模块
- 使用sys.argv获取命令行参数
- 使用sys.stdin和fileinput读取标准输入
- 使用SystemExit异常打印异常信息
- 使用getpass库读取密码
2.2 使用ConfiParse解析配置文件
2.3 使用argparse解析命令行参数
2.4 使用logging记录日志
3.5 使用click解析命令行参数
3.文本处理
- 字符串格式化:format形式化
- 正则表达式
- 字符串编码:utf8,unicode
- Jinja2模板:输出带有变量的文本
4.linux系统管理
4.1 文件读写
with open('/etc/passwd', 'r+') as f:
print(f.read())
4.2 文件与文件路径管理:os模块
- os.getcwd():获取当前路径
- os.basename():
- os.abspath():
- os.isabs():
- os.getatime()
- os.getctime()
- os.getmtime()
- os.listdir()
- os.path.realpath()
- os.rmdir()
- os.remove()
- os.removedirs()
- os.rename()
4.3 查找文件
- fnmatch:支持通配符查找
- glob:查找特定文件
- os.walk:遍历目录书
4.4 高级文件处理接口shutil
- 复制文件:shutil.copy
- 复制文件夹:shutil.copytree
- 文件或文件夹的移动或改名:shutil.move
4.5 文件夹管理
- 目录和文件比较:filecmp模块
- MD5校验和比较:hashlib模块
4.6 使用Python管理压缩包
- tarfile:读取、创建tar包
- zipfile:创建和读取zip文件
- shutil:创建和读取压缩包
4.7 Python中执行外部命令
- subprocess.call:执行外部命令
- subprocess.check_call:与call类似
- subprocess.check_output:
5.用python编写的系统监控程序
- dstat:用来替代vmstat,netsta,ifstst,iostat等,功能强大,实时显示系统的资源状态
- glances:交互式监控工具,能够实时监控系统资源的状态
- htop:改进的top命令,功能更强,显示更明了
- psutil模块:可以获取系统的各项参数,一些监控工具就是基于此模块开发的
6.文档与报告
- excel文档操作工具:openpyxl模块
- pdf文件操作工具:PyPDF2模块
- 创建pdf文档:PdfFileWrite模块
- 图片管理:
-
-
- 使用邮件发送报告:smtplib模块,mime模块