×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
LINUX系统自动化运维(PYTHON版)(微课版)

LINUX系统自动化运维(PYTHON版)(微课版)

1星价 ¥43.1 (7.2折)
2星价¥43.1 定价¥59.8
暂无评论
图文详情
  • ISBN:9787115628244
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:230
  • 出版时间:2024-01-01
  • 条形码:9787115628244 ; 978-7-115-62824-4

本书特色

实战案例丰富:本书提供了大量的实战案例,帮助读者更好地理解和掌握Linux系统运维的知识和技能。

配套资源丰富:除了书本内容,还提供了丰富的配套资源,使得学习过程更加生动和实用。

微课版特性:作为微课版图书,本书在内容上更加精炼和实用,适合快节奏的学习需求。

作者经验丰富:作者具有丰富的Linux系统运维和Python编程经验,保证了书本内容的专业性和实用性。

内容简介

本书主要讲解Python在Linux系统运维开发中的典型应用,通过面向实际运维场景的任务实施,帮助读者掌握Python在系统自动化运维领域的应用。本书共8个项目,内容包括系统自动化运维:从Shell到Python、监控系统与调度运维任务、处理文件内容与配置文件、记录日志与发送邮件、运维数据记录与可视化、远程管理和批量运维服务器、网络管理和网络安全、企业级系统综合运维。 本书内容丰富、结构清晰、重点突出、难点分散,注重实践性和可操作性,对项目中的每个任务都提供详细的代码和解说,便于读者快速上手。 本书可作为高校计算机类专业的Python编程教材,也可作为Linux系统运维教材,还适合广大从事Python自动化运维开发工作的初学者学习和参考。

目录

项目1 系统自动化运维:从Shell到Python 1

知识目标 1

技能目标 1

素养目标 1

任务1.1 从Shell编程开始系统自动化运维 1

任务要求 1

相关知识 2

1.1.1 初识系统自动化运维 2

1.1.2 Linux系统自动化运维的基本工具——Shell脚本 3

任务实现 4

任务1.1.1 准备实验环境 4

任务1.1.2 编写Shell脚本批量创建Linux用户账户 5

任务1.1.3 编写Shell脚本批量检测主机在线状态 7

任务1.1.4 编写Shell脚本一键安装JDK 8

任务1.1.5 编写Shell脚本监控Linux系统性能 9

任务1.2 使用Python提升系统自动化运维技能 13

任务要求 13

相关知识 13

1.2.1 Python简介 13

1.2.2 Python的模块、包与库 14

1.2.3 Python与系统自动化运维 15

任务实现 15

任务1.2.1 搭建Python开发环境 15

任务1.2.2 编写Python程序监控Linux系统性能 18

任务1.3 使用Python执行外部命令 23

任务要求 23

相关知识 23

1.3.1 subprocess模块简介 23

1.3.2 subprocess模块的便利函数 23

1.3.3 subprocess模块的Popen类 25

任务实现 26

任务1.3.1 使用subprocess模块编程批量检测主机在线状态 26

任务1.3.2 编写通用的外部命令执行函数 27

项目小结 28

课后练习 28

项目实训 29

实训1 编写Shell脚本监控系统性能 29

实训2 编写Python脚本监控系统负载 29

实训3 使用subprocess模块编程创建Linux用户账户 29

项目2 监控系统与调度运维任务 30

知识目标 30

技能目标 30

素养目标 30

任务2.1 采集系统信息和管理进程 30

任务要求 30

相关知识 31

2.1.1 了解psutil库 31

2.1.2 系统信息相关函数 31

2.1.3 进程管理功能 33

任务实现 34

任务2.1.1 使用psutil库采集系统信息 34

任务2.1.2 使用psutil库实现进程管理 37

任务2.2 监控文件系统更改 37

任务要求 37

相关知识 38

2.2.1 了解pyinotify库 38

2.2.2 了解watchdog库 40

任务实现 42

任务2.2.1 基于pyinotify库编写文件系统更改监控程序 42

任务2.2.2 基于watchdog库编写文件系统更改监控程序 43

任务2.3 监控Web服务 45

任务要求 45

相关知识 45

2.3.1 PycURL库简介 45

2.3.2 PycURL库的基本用法 46

任务实现 48

基于PycURL库编写Web服务监控程序 48

任务2.4 调度运维任务 50

任务要求 50

相关知识 50

2.4.1 APScheduler库的组件 50

2.4.2 APScheduler库的基本用法 51

任务实现 54

任务2.4.1 使用Cron服务调度运维任务 54

任务2.4.2 基于APScheduler库编程调度运维

任务 54

项目小结 55

课后练习 55

项目实训 56

实训1 使用psutil库编程获取系统启动时间和登录信息 56

实训2 使用watchdog库编程监控文件的移动 56

实训3 使用PycURL库编程判断Web服务的可用性 57

实训4 使用APScheduler库编程调度监控任务 57

项目3 处理文件内容与配置文件 58

知识目标 58

技能目标 58

素养目标 58

任务3.1 解析和处理文件内容 58

任务要求 58

相关知识 59

3.1.1 字符串及其操作 59

3.1.2 文本文件的读写 60

3.1.3 编码和解码 61

3.1.4 正则表达式 62

任务实现 65

任务3.1.1 统计用户账户 65

任务3.1.2 查看配置文件并去除注释和空行 66

任务3.2 操作配置文件 67

任务要求 67

相关知识 67

3.2.1 INI文件及其Python操作方法 67

3.2.2 XML文件及其Python解析方法 68

3.2.3 JSON文件及其Python操作方法 69

3.2.4 YAML文件及其Python操作方法 70

任务实现 72

任务3.2.1 编程操作INI文件 72

任务3.2.2 使用DOM方法读写XML文件 73

任务3.2.3 编程操作JSON文件 74

任务3.2.4 编程操作YAML文件 75

任务3.3 使用模板高效处理文本文件 76

任务要求 76

相关知识 76

3.3.1 什么是模板 76

3.3.2 Jinja2模板语法 77

3.3.3 Jinja2模板的渲染 78

任务实现 79

任务3.3.1 使用Jinja2模板生成HTML文件 79

任务3.3.2 使用Jinja2模板生成XML文件 80

任务3.4 比对文件和目录内容 81

任务要求 81

相关知识 81

3.4.1 difflib模块 81

3.4.2 filecmp模块 82

任务实现 83

任务3.4.1 使用difflib模块编程比较两个文件

内容 83

任务3.4.2 使用filecmp模块编程比较两个目录

内容 84

项目小结 85

课后练习 86

项目实训 87

实训1 获取网页中所有图片的链接 87

实训2 编写将XML文件转换为YAML文件的Python程序 87

实训3 使用Jinja2模板生成HTML报表 87

项目4 记录日志与发送邮件 88

知识目标 88

技能目标 88

素养目标 88

任务4.1 记录日志 88

任务要求 88

相关知识 89

4.1.1 为什么要使用logging模块 89

4.1.2 logging模块的日志级别 89

4.1.3 logging模块的基本用法 89

4.1.4 logging模块的类 91

4.1.5 日志记录的配置 94

任务实现 94

任务4.1.1 将日志消息同时输出到屏幕和文件 94

任务4.1.2 使用日志文件记录异常处理信息 95

任务4.1.3 使用日志记录系统监控异常信息 96

任务4.2 发送邮件 97

任务要求 97

相关知识 97

4.2.1 smtplib模块及其基本用法 97

4.2.2 email模块及其基本用法 98

任务实现 100

任务4.2.1 通过邮件发送报警通知 100

任务4.2.2 通过邮件发送运维报告 102

项目小结 103

课后练习 103

项目实训 104

实训1 使用日志记录文件删除和移动监控的信息 104

实训2 监控文件删除和移动并发送邮件通知 104

项目5 运维数据记录与可视化 105

知识目标 105

技能目标 105

素养目标 105

任务5.1 记录运维数据 105

任务要求 105

相关知识 106

5.1.1 纯文本的CSV文件 106

5.1.2 功能强大的Excel文件 106

5.1.3 使用数据库存储 109

任务实现 110

任务5.1.1 使用CSV文件记录系统监控数据 110

任务5.1.2 使用SQLite数据库记录系统监控数据 112

任务5.2 可视化运维数据 114

任务要求 114

相关知识 115

5.2.1 经典的Python绘图库Matplotlib 115

5.2.2 高效、简洁的Web可视化框架Dash 116

任务实现 121

任务5.2.1 基于Matplotlib库生成系统监控数据统计图表 121

任务5.2.2 通过Dash框架实现系统监控数据仪表盘 123

项目小结 127

课后练习 127

项目实训 128

实训1 使用Excel文件记录系统监控数据并绘制CPU使用率的折线图 128

实训2 基于Dash框架绘制CPU和内存使用率的柱形图 128

项目6 远程管理和批量运维服务器 129

知识目标 129

技能目标 129

素养目标 129

任务6.1 使用Paramiko库远程管理服务器 129

任务要求 129

相关知识 130

6.1.1 SSH协议 130

6.1.2 Paramiko库简介 130

6.1.3 使用SSHClient类建立SSH连接 131

6.1.4 使用Transport类控制SSH连接 132

6.1.5 使用SFTPClient实现文件传输 133

任务实现 134

任务6.1.1 搭建多服务器实验环境 134

任务6.1.2 基于密钥认证连接远程服务器 135

任务6.1.3 在远程服务器上执行sudo命令 137

任务6.1.4 实现交互式操作的远程伪终端 138

任务6.2 使用Fabric库批量管理和运维服务器 139

任务要求 139

相关知识 140

6.2.1 Fabric库简介 140

6.2.2 Connection类的基本用法 140

6.2.3 为sudo命令自动提供密码 143

6.2.4 批量操作远程服务器 143

6.2.5 传统的fab命令行工具 145

任务实现 145

任务6.2.1 批量部署源代码 145

任务6.2.2 集中采集多台服务器的系统信息 147

任务6.2.3 自动部署LAMP平台 148

项目小结 150

课后练习 150

项目实训 151

实训1 使用Paramiko库编程实现基于密钥认证的SSH客户端 151

实训2 使用Fabric库编程实现批量采集服务器的网络流量信息 151

实训3 使用Fabric库编程实现自动安装Docker CE 152

项目7 网络管理和网络安全 153

知识目标 153

技能目标 153

素养目标 153

任务7.1 IP地址管理与DNS解析 153

任务要求 153

相关知识 154

7.1.1 IPy库及其基本用法 154

7.1.2 dnspython库及其基本用法 156

任务实现 157

任务7.1.1 使用IPy库解析IP地址 157

任务7.1.2 使用dnspython库解析DNS记录 158

任务7.2 实现网络探测和安全扫描 159

任务要求 159

相关知识 160

7.2.1 nmap工具 160

7.2.2 python-nmap库 164

任务实现 166

任务7.2.1 检测网络中在线状态的主机 166

任务7.2.2 检测主机的服务及版本 166

任务7.3 使用Scapy库处理网络数据包 167

任务要求 167

相关知识 168

7.3.1 Scapy库简介 168

7.3.2 Scapy库的基本使用方法 168

任务实现 174

任务7.3.1 使用Scapy库进行SYN扫描 174

任务7.3.2 使用Scapy库进行TCP路由跟踪 175

任务7.3.3 使用Scapy库进行抓包重放 175

项目小结 177

课后练习 177

项目实训 178

实训1 检测主机的服务及版本并将结果生成HTML报表 178

实训2 使用Scapy库抓取网络数据包并进行处理 178

项目8 企业级系统综合运维 179

知识目标 179

技能目标 179

素养目标 179

任务8.1 熟悉Ansible的基本用法 179

任务要求 179

相关知识 180

8.1.1 Ansible的特点和应用 180

8.1.2 Ansible的基本架构 181

8.1.3 安装Ansible 181

8.1.4 配置Ansible 182

8.1.5 编写清单文件 183

8.1.6 配置SSH连接 184

8.1.7 Ansible的模块 185

8.1.8 使用Ansible即席命令 186

8.1.9 命令执行模块 187

任务实现 187

任务8.1.1 使用Ansible在目标主机上执行Shell脚本 187

任务8.1.2 使用Ansible提权操作目标主机 190

任务8.2 基于Playbook实现自动化任务 190

任务要求 190

相关知识 191

8.2.1 Playbook的基本语法 191

8.2.2 运行Playbook 193

8.2.3 在Playbook中使用处理程序 195

8.2.4 在Playbook中定义和使用变量 195

8.2.5 在Playbook中使用控制结构 197

8.2.6 使用Ansible Vault加密内容 198

任务实现 200

任务8.2.1 使用Playbook配置系统时钟同步 200

任务8.2.2 使用Playbook批量添加用户账户 202

任务8.3 使用Ansible角色组织Playbook 204

任务要求 204

相关知识 204

8.3.1 理解Ansible角色 204

8.3.2 使用Ansible Galaxy 208

任务实现 210

任务8.3.1 通过角色部署Web负载平衡 210

任务8.3.2 通过Ansible Galaxy部署角色 216

任务8.4 部署Zabbix监控平台 218

任务要求 218

相关知识 218

8.4.1 Zabbix的主要特性 218

8.4.2 Zabbix的基本架构 219

任务实现 219

任务8.4.1 以容器形式安装Zabbix服务器 219

任务8.4.2 使用Ansible部署Zabbix代理 222

任务8.4.3 试用Zabbix实现系统监控 225

项目小结 227

课后练习 228

项目实训 229

实训1 使用Ansible即席命令执行Shell脚本检测目标主机的CPU使用率 229

实训2 使用Playbook批量更改CentOS的系统环境配置 229

实训3 从Ansible Galaxy获取Redis角色并在CentOS服务器上部署 230

展开全部

作者简介

张莉,副教授,浙江安防职业技术学院大数据技术专业负责人。清华大学访问学者,美国加州大学圣地亚哥分校访问学者,主要从事大数据技术教学和科研工作,主持省级以上科研项目3项,主编教材3部,专利6项,核心期刊发表论文2篇。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航