编程书籍推荐:Python Linux系统管理与自动化运维,由机械工业出版社2017-09-01月出版,本书发行作者信息: 赖明星 著此次为第1次发行, 国际标准书号为:9787111578659,品牌为机工出版, 这本书采用平装开本为16开,附件信息:未知,纸张采为胶版纸,全书共有412页字数万 字,值得推荐的Python Book。
Python是系统管理和运维领域的一把利器,本书是作者多年来在网易的云平台开发、数据库内核开发、系统管理与运维领域使用Python的经验总结。
本书以Linux系统管理为线索,以Python语言为载体,从工具、脚本、方法等多个方面讲解了如何在Linux系统管理和自动化运维中使用Python来解决各种问题,包含大量案例和*佳实践。
全书逻辑上分为5个部分:
介绍篇(第1章):介绍了Python语言的优缺点和Python在Linux系统管理领域的应用;
工具篇(第2章):讲解了多个Python生态工具,充分利用这些工具,不但可以有效地提高工作效率,而且还能形成统一的代码风格;
脚本篇(第3~7章):详细讲解了如何使用Python编写脚本管理Linux,包括如何使用Python构建命令行工具、如何处理文本、如何进行系统管理、如何监控Linux系统,以及如何处理文档与报告,包含大量的Python实战案例。
自动化篇(第8~10章):主要讲解了多个Python语言开发工具,包括网络嗅探工具Scapy、自动化运维工具Fabric、自动部署工具Ansible等,灵活使用这些工具,可以有效地提高运维工程师的工作效率。
综合案例篇(第11章):介绍了一个综合案例,即使用Python打造MySQL数据库专家系统。其中详细讲解Python中的高级语言特性和系统架构,充分理解这一章的内容,相信读者的Python水平能有一个较大的提升。
赖明星
资深云平台开发工程师、数据库内核开发工程师和高级运维工程师,现就职于腾讯CDG(企业发展事业群),曾就职于网易,网易云数据库MySQL云平台、MongoDB云平台的核心开发人员,网易大规模MySQL系统运维的负责人,独立完成MySQL存储引擎的TNT自动化研发和测试。
国内知名的Python技术专家和Python技术的积极推广者,知乎专栏《Python高手之路》的所有者和维护者,在网络上撰写了大量优质的原创文章,进行了多次高质量的技术分享。
除Python外,对Linux和MySQL也有深入研究,多次在 Oracle 技术嘉年华、IMG(Inside MySQL Group)技术沙龙、全球敏捷运维峰会、PHPCon China等知名技术大会分享MySQL*佳实践。
IMG社区核心成员,IMG社区自成立以来,努力打造纯净的技术氛围,积极推动技术分享,汇集了各个企业的技术大牛,在技术社区中有着很大的影响力,扫描下方二维码加入IMG社区。
适读人群 :本书并不是一本讲解Python编程语言的书籍,也不是教你使用Python运维工具的书籍。本书是一本讲解Python在Linux系统管理中应用的实战书籍。
腾讯技术总监姜承尧、网易技术总监余利华鼎力推荐,是作者运维和管理网易考拉、网易云音乐、网易新闻等大型互联网产品的经验总结
作者技术功底深厚,时间经验丰富,曾在网易担任资深平台开发工程师、数据库内核工程师和高级运维工程师,现就职于腾讯CDG(企业发展事业群)
来自于网易和腾讯等大型互联网公司的一线经验,从工具、方法、实战三个维度讲解了利用Python进行Linux系统管理和自动化运维的*佳实践
目录?Contents
推荐序一
推荐序二
推荐序三
前言
第1章Python语言与Linux系统管理1
1.1Python语言有多流行1
1.2Python语言为什么流行3
1.3Python语言有什么缺点4
1.4Python语言的应用场景4
1.5为什么Python适合Linux系统管理5
1.6使用Python2还是Python36
第2章Python生态工具9
2.1Python内置小工具9
2.1.11秒钟启动一个下载服务器10
2.1.2字符串转换为JSON10
2.1.3检查第三方库是否正确安装11
2.2pip高级用法12
2.2.1pip介绍12
2.2.2pip常用命令12
2.2.3加速pip安装的技巧14
2.3Python编辑器15
2.3.1编写Python的vim插件15
2.3.2Windows下Python编辑器PyCharm介绍17
2.4Python编程辅助工具18
2.4.1Python交互式编程18
2.4.2使用IPython交互式编程20
2.4.3jupyter的使用29
2.5Python调试器31
2.5.1标准库的pdb32
2.5.2开源的ipdb34
2.6Python代码规范检查34
2.6.1PEP8编码规范介绍34
2.6.2使用pycodestyle检查代码规范36
2.6.3使用autopep8将代码格式化37
2.7Python工作环境管理39
2.7.1使用pyenv管理不同的Python版本39
2.7.2使用virtualenv管理不同的项目42
2.8本章总结43
第3章打造命令行工具44
3.1与命令行相关的Python语言特性44
3.1.1使用sys.argv获取命令行参数45
3.1.2使用sys.stdin和fileinput读取标准输入46
3.1.3使用SystemExit异常打印错误信息48
3.1.4使用getpass库读取密码49
3.2使用ConfigParse解析配置文件49
3.3使用argparse解析命令行参数52
3.3.1ArgumentParse解析器52
3.3.2模仿MySQL客户端的命令行参数54
3.4使用logging记录日志55
3.4.1日志的作用55
3.4.2Python的logging模块56
3.4.3配置日志格式56
3.5与命令行相关的开源项目59
3.5.1使用click解析命令行参数59
3.5.2使用prompt_toolkit打造交互式命令行工具61
3.6本章总结64
第4章文本处理65
4.1字符串常量66
4.1.1定义字符串66
4.1.2字符串是不可变的有序集合68
4.1.3字符串函数71
4.1.4案例:使用Python分析Apache的访问日志79
4.1.5字符串格式化83
4.2正则表达式85
4.2.1正则表达式语法86
4.2.2利用re库处理正则表达式87
4.2.3常用的re方法90
4.2.4案例:获取HTML页面中的所有超链接94
4.3字符集编码94
4.3.1编码历史95
4.3.2UTF-8编码96
4.3.3从字符集的问题说起98
4.3.4Python2和Python3中的Unicode99
4.4Jinja2模板101
4.4.1模板介绍102
4.4.2Jinja2语法入门102
4.4.3Jinja2实战108
4.4.4案例:使用Jinja2生成HTML表格和XML配置文件112
4.5本章总结116
第5章Linux系统管理117
5.1文件读写118
5.1.1Python内置的open函数118
5.1.2避免文件句柄泄露119
5.1.3常见的文件操作函数120
5.1.4Python的文件是一个可迭代对象121
5.1.5案例:将文件中所有单词的首字母变成大写122
5.2文件与文件路径管理123
5.2.1使用os.path进行路径和文件管理123
5.2.2使用os模块管理文件和目录126
5.2.3案例:打印最常用的10条Linux命令128
5.3查找文件129
5.3.1使用fnmatch找到特定的文件129
5.3.2使用glob找到特定的文件130
5.3.3使用os.walk遍历目录树131
5.3.4案例:找到目录下最大(或最老)的十个文件132
5.4高级文件处理接口shutil134
5.4.1复制文件和文件夹135
5.4.2文件和文件夹的移动与改名135
5.4.3删除目录136
5.5文件内容管理136
5.5.1目录和文件比较137
5.5.2MD5校验和比较139
5.5.3案例:找到目录下的重复文件139
5.6使用Python管理压缩包141
5.6.1使用tarfile库读取与创建tar包141
5.6.2使用tarfile库读取与创建压缩包142
5.6.3案例:备份指定文件到压缩包中142
5.6.4使用zipfile库创建和读取zip压缩包143
5.6.5案例:暴力破解zip压缩包的密码144
5.6.6使用shutil创建和读取压缩包146
5.7Python中执行外部命令148
5.7.1subprocess模块简介149
5.7.2subprocess模块的便利函数149
5.7.3subprocess模块的Popen类151
5.8综合案例:使用Python部署MongoDB152
5.9本章总结155
第6章使用Python监控Linux系统156
6.1Python编写的监控工具157
6.1.1多功能系统资源统计工具dstat157
6.1.2交互式监控工具glances160
6.2使用Python打造自己的监控工具163
6.2.1Linux系统的/proc目录介绍163
6.2.2proc目录下常用文件介绍164
6.2.3进程目录下常用文件介绍165
6.2.4利用/proc目录找到被删除的文件166
6.2.5使用shell脚本监控Linux168
6.2.6使用Python监控Linux170
6
Preface?前言为何写作本书我第一次接触Python是在2008年的时候,当时还是一名大学生。有一位非常优秀的学长通过《黑客与画家》这本书了解到Python语言,并且认为Python将在未来几年迅猛发展,在各个应用领域都会大有可为。因此,在国内还没有广泛使用Python语言时,这位学长便推荐我学习Python。现在的Python语言,流行程度已不用我多言,这一方面证实了PaulGraham(《黑客与画家》的作者)的远见卓识,同时,也反映出这位优秀学长的聪明睿智。从这件事中,我深切地感受到要多与人交流,尤其是要与那些比自己优秀的人交流。正是出于和大家交流的想法,我将这些年的Python使用心得,以及在网易云开发与运维的经验汇集成一本书,也就是你现在看到的这本书。
如果大家身处互联网,一定能够切身地感受到Python语言的流行程度。Python语言由于其简单易学、语法优美、应用领域广泛等诸多优点,俘获了大批的粉丝。通过Google搜索指数可以看到,Python语言在最近两年出现了爆发式的增长,其在编程语言排行榜上的排名,从第8名一跃上升到第4名,并且有继续上升的趋势。越来越多的公司高薪招聘Python工程师,越来越多的世界名校开始讲授Python语言,越来越多的项目使用Python语言进行开发。因此,从各个角度来说,Python都将大有可为,学习Python将是一个正确的选择。
伴随着云计算的高速发展,Python在系统管理领域也表现不俗。著名的云计算平台OpenStack就是使用Python语言开发的,各大云计算厂商也选择使用Python开发自己的内部系统。并且,由于云计算厂商托管的都是大规模服务器,为了提高运维效率、节约人力成本、快速响应需求,各大云计算厂商都不约而同地使用Python进行大规模服务器的部署和运维。
Python在Linux系统管理中,已经担任了非常重要的角色。但是,讲解Python在Linux系统管理中应用的书籍却寥寥无几,更多都是专注于Python语言、Python爬虫和PythonWeb开发。难得的几本也仅仅是介绍Python相关工具的使用而已。由于互联网业务的复杂性和多样性,这远不能满足互联网公司的需求,公司更希望工程师能够灵活地使用Python,根据业务需求开发自己的工具和系统。因此,本书不仅会介绍Python语言编写的系统管理工具,还会讲解如何使用Python构建自己的系统管理工具。
主要内容特色本书介绍了Python语言在Linux系统管理中的应用,包括编写Python脚本管理Linux系统,使用Python编写的自动化工具管理Linux系统,以及使用Python打造专属的管理工具等。
本书以Linux系统管理为线索,以Python语言为载体,介绍了大量Python语言的应用案例。通过学习本书,不但可以使用Python语言管理Linux系统,也为Python解决其他领域问题打下了坚实的基础。书中每一章都会解决某一类问题,并且提供了问题的答案。如Python管理Linux文件和目录,使用Python监控Linux系统,使用Python编写自动化工具,使用Python进行自动化运维等。
通过学习本书,你可以:
掌握Python生态工具,提高自己的开发效率;学会如何使用Python构建自己的命令行工具;用Python编写可维护性更强的文本处理程序;全方位监控Linux系统;使用Python自动化部署应用;管理操作系统配置;使用Python打造MySQL专家系统;通过Python发送电子邮件。
本书读者对象本书不是一本讲解Python编程语言的书籍,也不是教授如何使用Python运维工具的书籍,而是一本讲解Python在Linux系统管理中应用的实战书籍。如果你还没学过Python编程语言,建议先学习Python语言以后,再来阅读本书。如果你从来没有使用过Linux,书中部分章节可能会让你感到困惑,不过依然有很多章节可以参考。因此,想要更好地学习本书内容,读者需要具备以下条件:
Python语言基础知识;Linux使用经验;了解SSH的使用。
本书虽然主要讲解Python在Linux系统管理中的应用,但是,书中很多例子都具有更加广泛的应用场景。本书的最大特色是提供了大量的实战案例,无论是刚学完Python语言,正在寻找Python实战案例的读者,还是想要学习Python在Linux系统管理中如何应用的读者,都能从中受益。
综上所述,本书适合以下几类读者:
使用Python语言的运维工程师;想要提高Python技能的开发工程师;想要了解Python在互联网应用的在校学生;所有对Python实战感兴趣的读者。
如何阅读本书本书共分11章,每一章都可以单独成册。你可以从头开始阅读,也可以选择自己感兴趣的章节阅读。
第1章介绍了Python语言的优缺点和Python在Linux系统管理领域的应用,这一章主要回答“为什么学习Python”这个问题。
第2章介绍了多个Python生态工具。充分利用这些工具,不但可以有效提高工作效率,还能形成统一的代码风格。此外,本章还会介绍如何解决Python中的环境依赖问题,包括如何在一台服务器上使用不同的Python版本,如何对不同的项目安装不同的依赖而不相互影响。相信通过学习本章介绍的工具,能够帮助你解决在学习Python过程中遇到的环境问题。
第3~7章主要讲解使用Python编写脚本管理Linux,包括如何使用Python构建命令行工具、
明星把自己这些年来在网易运维和管理Linux系统的过程中遇到的各种难题和总结的各种经验与方法全部呈现在了这本书中,对同行应该非常有参考价值。本书最后的MySQL专家系统是一个集大成的运维开发系统,读者可以通过这个案例更地理解Python在运维中的实际应用。我将此书推荐给所有技术圈的码农们,也希望大家早日体会到Pythonic的*高奥义。
——姜承尧 腾讯技术总监
市面上有不少讲解Python编程语言的书籍, 也有不少关于Linux系统管理书籍,但是如何利用Python解决Linux系统管理问题的书籍却寥寥无几。 明星是网易的数据库专家,是数据库云服务(RDS)的核心开发人员。 RDS产品使用Python语言成功管理了成千上万个Linux主机和MySQL实例,成功支撑了考拉、网易云音乐、网易新闻等大型互联网产品, 在RDS研发运营过程中, 作者积累了大量一线工作经验和案例,通过这一本书的方式分享给大家,希望对大家有所帮助。
——余利华 网易技术总监
《Python Linux系统管理与自动化运维》:
在unpackage_mongo函数中,我们通过Python程序得到MongoDB安装包解压以后的目录。如果该目录已经存在,则删除该目录。随后,我们使用tarfile解压MongoDB数据库,解压完成以后,将目录重命名为mongo目录。在create datadir目录中,我们首先判断MongoDB数据目录是否存在,如果存在,删除该目录,随后再创建MongoDB的数据目录。在start mo“god函数中,我们执行MongoDB数据库的启动命令启动MongoDB数据库。为了在Python代码中执行Shell命令,我们使用了subprocess库。我们将subprocess库执行Shell命令的逻辑封装成execute_cmd函数。在需要执行Shell命令时,直接调用该函数即可。
5.9本章总结
软件工程师总是希望将所有的任务都自动化。在Linux平台下借助shell脚本,比较容易实现任务的自动化。在Windows下要想实现自动化则不是那么方便(也可以使用bat脚本),这是因为Windows操作系统就是为普通电脑使用人员设计的,没有提供丰富的命令行程序。如果需要在不同的操作系统中使用不同的脚本语言才能够进行自动化,不如选择一门跨平台的编程语言。
……
Python Linux系统管理与自动化运维最新最全的试读、书评、目录、简介信息由Python中文网整理提供。
本文链接:http://so.lmcjl.com/news/1868/