在 IT 产业链中开源的理念已成为绝大多数企业的共识。随着开源技术的不断进步与创新,云计算也逐步深入到了每个互联网企业的内部。但是,随之而来的便是管理成本的提高,大量的物理或者虚拟主机需要管理与维护,如何能够更好地实现自动化运维,成为企业需要迫切解决的问题。行业中自动化运维的软件很多,Puppet、Saltstack、Ansible 等让我们在云时代依然可以轻松管理和维护设备与业务,然而像 Ansible 这样的自动化工具,虽然已经内置了很多模块,但是在解决每个企业的个性化需求时还需要编写自动化脚本。本书将围绕 Linux 系统中最常用的 Shell 脚本语言,讲解如何通过 Shell 编写自动化、智能化脚本。全书以案例贯穿,对每个知识点都可以找到与之对应的案例,完成本书中的每个案例对于未来在企业中的实际应用极具意义。另外,在本书中配套有很多游戏案例,通过编写游戏脚本可以极大地提升学习的乐趣。本书中的代码可以在 http://github.com/jacobproject/shell_scripts 下载,现在的商业环境是一个充满竞争的环境,很多企业的业务量在不断地增长,对服务质量的要求也越来越高。特别是互联网企业为了满足客户更高的需求,提升用户使用体验,IT 部门需要维护的设备数量从早期的几台,发展到了目前的数以万计,如此庞大的服务器维护量,通常会让 IT 管理人员头疼不已。本书介绍的自动化运维内容可以让我们快速掌握大规模批量处理的简单方法。本书从基础知识讲到数据分析、数据过滤等高级应用,适合 Linux 运维人员、Shell 编程爱好者阅读,可作为 Linux 运维人员的一本优秀的案头书。


作者

丁明一 

达内集团云计算教学研发总监、开源技术推广者;红帽认证架构师(RHCA)、红帽认证高级讲师(RHCI);曾任职于中国电信、鹏博士等多家IT企业,并创办多个企业,有十余年IT行业经验;精通Linux系统、Shell脚本编程、各大云计算产品、Docker容器技术、分布式存储技术,拥有丰富的虚拟化技术使用经验,对企业集群存储环境及高性能、高可用架构有深入的研究,著有畅销图书《Linux运维之道》。


查看全部
目录

作者简介

内容简介

推荐序1

推荐序2

推荐序3

推荐序4

推荐序5

前言

第1章 从这里开始,起飞了

1.1 脚本文件的书写格式

1.2 脚本文件的各种执行方式

1.3 如何在脚本文件中实现数据的输入与输出

1.4 输入与输出的重定向

1.5 各种引号的正确使用姿势

1.6 千变万化的变量

1.7 数据过滤与正则表达式

1.8 各式各样的算术运算

注释

第2章 人工智能,很人工、很智能的脚本

2.1 智能化脚本的基础之测试

2.2 字符串的判断与比较

2.3 整数的判断与比较

2.4 文件属性的判断与比较

2.5 探究[[]]和[]的区别

2.6 实战案例:系统性能监控脚本

2.7 实战案例:单分支if语句

2.8 实战案例:双分支if语句

2.9 实战案例:如何监控HTTP服务状态

2.10 实战案例:多分支if语句

2.11 实战案例:简单、高效的case语句

2.12 实战案例:编写Nginx启动脚本

2.13 揭秘模式匹配与通配符、扩展通配符

2.14 Shell小游戏之石头剪刀布

注释

第3章 根本停不下来的循环和中断控制

3.1 玩转for循环语句

3.2 实战案例:猴子吃香蕉的问题

3.3 实战案例:进化版HTTP状态监控脚本

3.4 神奇的循环嵌套

3.5 非常重要的IFS

3.6 实战案例:while循环

3.7 Shell小游戏之猜随机数字

3.8 实战案例:如何通过read命令读取文件中的数据

3.9 until和select循环

3.10 中断与退出控制

3.11 Shell小游戏之机选双色球

注释

第4章 请开始你的表演,数组、Subshell与函数

4.1 强悍的数组

4.2 实战案例:斐波那契数列

4.3 实战案例:网站日志分析脚本

4.4 常犯错误的SubShell

4.5 启动进程的若干种方式

4.6 非常实用的函数功能

4.7 变量的作用域与return返回值

4.8 实战案例:多进程的ping脚本

4.9 控制进程数量的核心技术——文件描述符和命名管道

4.10 实战案例:一键源码部署LNMP的脚本

4.11 递归函数

4.12 排序算法之冒泡排序

4.13 排序算法之快速排序

4.14 排序算法之插入排序

4.15 排序算法之计数排序

4.16 Shell小游戏之单词拼接puzzle

注释

第5章 一大波脚本技巧正向你走来

5.1 Shell八大扩展功能之花括号

5.2 Shell八大扩展功能之波浪号

5.3 Shell八大扩展功能之变量替换

5.4 Shell八大扩展功能之命令替换

5.5 Shell八大扩展功能之算术替换

5.6 Shell八大扩展功能之进程替换

5.7 Shell八大扩展功能之单词切割

5.8 Shell八大扩展功能之路径替换

5.9 实战案例:生成随机密码的若干种方式

5.10 Shell解释器的属性与初始化命令行终端

5.11 trap信号捕获

5.12 实战案例:电子时钟

5.13 Shell小游戏之抓住小老鼠算你赢

5.14 实战案例:脚本排错技巧

5.15 实战案例:Shell版本的进度条功能

5.16 再谈参数传递之xargs

5.17 使用shift移动位置参数

5.18 实战案例:Nginx日志切割脚本

注释

第6章 上古神兵利器sed

6.1 sed基本指令

6.2 sed高级指令

6.3 实战案例:自动化配置vsftpd脚本

6.4 实战案例:自动化配置DHCP脚本

6.5 实战案例:自动化克隆KVM虚拟机脚本

6.6 实战案例:通过libguestfs管理KVM虚拟机脚本

6.7 实战案例:自动化配置SSH安全策略脚本

6.8 实战案例:基于GRUB配置文件修改内核启动参数脚本

6.9 实战案例:网络爬虫脚本

6.10 Shell小游戏之点名抽奖器

注释

第7章 不可思议的编程语言awk

7.1 awk基础语法

7.2 awk条件判断

7.3 awk数组与循环

7.4 awk函数

7.5 实战案例:awk版网站日志分析

7.6 实战案例:监控网络连接状态

7.7 实战案例:获取SSH暴力破解攻击黑名单列表

7.8 实战案例:性能监控脚本

7.9 实战案例:数据库监控脚本

7.10 实战案例:awk版网络爬虫

注释

查看全部
书评
查看更多
请您登录后发表评论 登录 | 注册
我的评分:
提交
0/400