博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python生态工具
阅读量:4126 次
发布时间:2019-05-25

本文共 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/

你可能感兴趣的文章
日志框架学习2
查看>>
SVN-无法查看log,提示Want to go offline,时间显示1970问题,error主要是 url中 有一层的中文进行了2次encode
查看>>
NGINX
查看>>
Qt文件夹选择对话框
查看>>
1062 Talent and Virtue (25 分)
查看>>
1061 Dating (20 分)
查看>>
1060 Are They Equal (25 分)
查看>>
83. Remove Duplicates from Sorted List(easy)
查看>>
88. Merge Sorted Array(easy)
查看>>
java环境变量配置
查看>>
myeclipse Java compiler level does not match the version of the installed Java p
查看>>
native2ascii的简单应用
查看>>
Cannot convert value '0000-00-00 00:00:00' from column to TIMESTAMP
查看>>
通过汉字查找五笔码和拼音
查看>>
从出生日期到今天的C# 计算年龄的方法(精确到天)
查看>>
devexpress控件里面的gridcontrol怎么不显示多级数据的子数据
查看>>
C#代码自动生成界面,界面变换时闪屏
查看>>
不想说话,线程太多,返回主线程方法
查看>>
win7 电脑的IP地址怎么知道
查看>>
javascript js 的json数组对象,对象转json,json转对象,JSON.parse,JSON.stringify,eval(“(“+JsonStr+“)“);
查看>>