本文共 1915 字,大约阅读时间需要 6 分钟。
正所谓磨刀不误砍柴工,因此,在学习 Python 在 Linux 系统管理中的应用之前, 先来看一下 Python 生态中有哪些有用工具。 我会介绍多个不同用途的工具, 这些工具不但有趣,而且非常实用。
为什么 Python 适合 Linux 系统管理
- Python 语言相对于 Shell 脚本咱 代码更加清晰易懂。 无论是运维工程师还是开发工 程师, Shell 都是基本功。 Shell 脚本虽然功能强大,可以使用很少的代码完成常见的任务, 但是它的语法复杂,可读性和可维护性差。 当程序越来越强大,功能越来越复杂时,如 果还使用 Shell 脚本,将会导致整个程序难以维护。 Python 语言则不存在这个问题,因为 Python 程序语法清晰、简单易懂。
- Python 语言表达能力强。 Python 语言相对于 Shell 脚本,更具有表现力,更易于扩 展。 例如, Python 提供了丰富的数据结构,如列表、元组、字典、 队列等; Python 语言也 可以方便地进行多线程编程。 这些都是 Shell 脚本不具有的能力。
- Python 语言可跨平台。 Python 标准库对操作系统的接口进行了封装,例如, Python 标准库绑定了 POSIX 以及其他常规操作工具,如环境变量、文件、套接字、管道、进程、 多线程、正则表达式、命令行参数、 Shell 命令启动器、文件名扩展等。 Python 对操作系统 的接口封装以后,我们一方面使我们可以使用 Python 语言方便地管理 Linux 系统;另一方 面,使 Python 程序相对于 Shell 脚本,具有了跨平台的优势。
- Python 语言可以方便地与操作系统集成。 使用 Python 管理 Linux,不但可以使用 Python 标准库对操作系统的封装,也可以方便地在 Python 中执行 Linux 命令,进一步将 Python 管理 Linux 系统的能力放大, 从而可以使用 Python 完成任何管理任务。
- 许多开源的项目对 Linux 系统管理提供了支持。 例如,我们可以使用 psutil 轻松编 写一个监控程序,也可以使用iPy 管理 IP 地址。
- 有不少使用 Python 开发的自动化管理工具。 很多知名的自动化管理工具都是使 用 Python 语言开发,如 Fabric、 Ansible、 SaltStack 等,这也正说明了 Python 是一门适合 Linux 系统管理的语言。
Python 内置小工具
我们将会介绍 3 个 Python 解释器自身提供的小工具。 这些小工具在日常 工作中经常用到,减少了各种时间的浪费,但却很容易被大家忽略。
1 秒钟启动一个下载服务器
Python 内置了一个下载服务器能够显著提升效率。 例如, 你的同事要让你传的文件位于某一个目录下,那么,你可以进入这个目 录, 然后执行下面的命令启动一个下载服务器 :
#python2python -m SimpleHTTPServer#python3python -m http.server
执行上面的命令就会在当前目录下启动一个文件下载服务器, 默认打开 8000 端口 。完成以后,只需要将 IP 和端口告诉同事,让同事自己去操作即可,非常方便高效。
从工作原理来说,仅仅是启动了一个 Python 内置的 Web 服 务器。 如果当前目录下存在一个名为
index.html
的文件,则默认显示该文件的内容。 如果当前目录下不存在这样一个文件,则默认显示当前目录下的文件列表, 也就是大家看到的下载服务器。
字符串转换为 JSON
当需要分析问题时,就需要将日志文件中的 JSON 字符串拿出来进行分析。 这个时候,需要将一个 JSON 字符串转换为 JSON 对象,以提高日志的可读性。python -m json.tool
user@Ubuntu:~/test$ echo '{"name":"weick","age":"22","sex":"male"}' | python3 -m json.tool{ "name": "weick", "age": "22", "sex": "male"}
检查第三万库是否正确安装
如果我们使用脚本对大批量的服务器进行自动部署,又应该如何验证第三方库安装成功了呢?肯定不能登录每一台服务器进行验证。 这个时候,我们可以使用 Python 解释器的,c 参数快速地执行 import 语句,如下所示:
$ python -c "import paramik"
转载地址:http://lyhpi.baihongyu.com/