内容简介
本书是Linux运维领域的经典书,是51CTO、IT168等知名网站和多位运维专家共同的运维工程师必备的工具书!
酒哥在Linux运维领域潜心实践近10年,一直在运维一线,技术和思维都紧跟时代的发展,清楚运维工程师们需要什么,应该学习什么。本书不仅是他近10年工作经验的结晶,同时也是他的数万名读者和数十万粉丝共同需求和集体智慧的呈现。本书自第1版出版以来,就广受关注和好评,曾被《程序员》杂志和51CTO等IT媒体评为“10大技术影响力的图书”和“读者喜爱的原创图书”。笔者根据运维技术的发展和读者的反馈意见,不断地对书的内容进行优化:更新了过时的技术;补充了的内容;限于篇幅,部分内容作为电子版免费提供给读者在线阅读,从而使得这本书的内容更加完善。
目录
目录
本书赞誉
前 言
第1章 Linux服务器的构建与优化1
1.1 使用PXE+DHCP+Apache+Kickstart无人值守安装CentOS 5.8 x86_641
1.2 全面了解Linux服务器9
1.2.1 查看Linux服务器的CPU详细情况10
1.2.2 查看Linux服务器的内存使用情况10
1.2.3 查看Linux服务器的硬盘使用情况12
1.2.4 查看Linux系统的平均负载15
1.2.5 查看Linux系统的其他参数16
1.3 Linux服务器的网络配置19
1.3.1 配置Linux服务器的网络20
1.3.2 查看Linux服务器的网络连接22
1.3.3 查看Linux服务器的进程32
1.3.4 在CentOS 5.8、FreeBSD 8.1及Windows下添加静态路由39
1.4 Linux服务器的日志管理41
1.4.1 系统日志syslog.conf的配置详解41
1.4.2 Linux下的日志维护技巧43
1.5 Linux服务器的优化49
1.5.1 如何根据服务器应用来选购服务器49
1.5.2 CentOS 5.8化安装后的优化54
1.5.3 优化Linux下的内核TCP参数以提高系统性能57
1.6 用开源工具Nagios监控Linux服务器60
1.6.1 CentOS 5.8下的监控工具60
1.6.2 Nagios应该监控的服务器基础选项60
1.6.3 工作中的Nagios使用心得61
1.7 小结62
第2章 生产环境下服务器的故障诊断与排除63
2.1 快速排障的重要性和必要性63
2.2 安装系统时容易发生的错误描述与处理方法63
2.2.1 忘记CentOS 5.8的root密码怎么办63
2.2.2 正确重设root密码65
2.2.3 安装FreeBSD 8.1时不要设置/boot分区66
2.2.4 安装CentOS 5.8时忘了关闭iptalbes和SELinux67
2.3 网络配置时容易发生的错误描述与处理方法68
2.3.1 安装CentOS 5.8时忘了激活网卡68
2.3.2 CentOS 5.8网卡文件备份的正确方法69
2.3.3 在CentOS 5.8下如何正确配置网关70
2.3.4 防火墙初始化的注意事项71
2.4 系统维护时应该注意的地方71
2.4.1 服务器硬件改动进入了Emergency模式71
2.4.2 如何以普通用户的身份编辑无权限的文件72
2.4.3 在Linux下配置文件打开数的方法72
2.4.4 在crontab下正确防止脚本运行冲突74
2.5 紧急处理线上服务器故障的办法74
2.5.1 更改Administrator密码导致计划任务无法执行74
2.5.2 CentOS 5.8的root密码被恶意篡改75
2.5.3 bash文件损坏该如何正确处理75
2.5.4 正确操作nohup让程序始终在后台运行76
2.5.5 Nginx负载均衡器出现故障76
2.6 检查机房应注意的位置和细节问题77
2.7 系统维护时应注意的非技术因素77
2.8 小结78
第3章 生产环境下的Shell脚本79
3.1 Vim的基础用法及进阶心得80
3.2 Sed的基础用法及实用举例83
3.2.1 Sed的基础语法格式84
3.2.2 Sed的用法举例说明86
3.3 基础正则表达式91
3.4 Linux下强大的查找命令find96
3.5 汇总Linux/UNIX下的bash快捷键105
3.6 生产环境下的Shell脚本分类107
3.6.1 生产环境下的Shell脚本备份类107
3.6.2 生产环境下的开发类Shell脚本115
3.6.3 生产环境下的统计类Shell脚本116
3.6.4 生产环境下的监控类Shell脚本119
3.6.5 生产环境下的自动化类Shell脚本124
3.7 小结127
第4章 构建高可用的Linux集群128
4.1 负载均衡高可用的核心概念和常用软件128
4.1.1 什么是负载均衡高可用128
4.1.2
摘要与插图
第1章 Linux服务器的构建基础在从事目前的系统架构师工作之前,很长一段时间我从事的是系统管理员/系统管理员工作。在企业日常运营中,我的工作涉及的内容主要有电子商务网站的运维、内网开发环境的部署、公司外包项目的实施等。在这些工作中,我用到的系统绝大多数是免费开源的CentOS 5.8 x86_64系统,它的稳定和令我印象深刻。本章将以CentOS 5.8 x86_64的生产服务器为平台,逐步介绍它的Kickstart无人值守安装、网络配置、日志分析、性能状态监控,以及它的化优化等内容,这些都是构建高性能及高可用的Linux系统的基础,希望对大家有所帮助。
1.1 使用PXE+DHCP+Apache+Kickstart无人值守安装CentOS 5.8 x86_64
CentOS 5.8 x86_64的安装方法挺多的,见的有光盘安装、Kickstart无人值守安装、优盘安装及ISO硬盘安装等。现阶段的工作由于需要大规模将CentOS 5.8 x86_64系统应用于集群环境,所以这种无人值守安装的方法主要用于在公司内网批量安装新服务器系统,这种方法极大地简化了用光盘重复安装CentOS 5.8 x86_64的过程,再加上通过应用分布式自动化运维工具Puppet进行批量部署,达到了自动化运维的目的,避免了重复性劳动,极大地提高了工作效率。
先,我们来介绍一下与之相关的原理和概念。
1.什么是PXE
严格来说,PXE并不是一种安装方式,而是一种引导方式。进行PXE安装的必要条件是在要安装系统的计算机中包含一个PXE支持的网卡(NIC),即网卡中必须有PXE Client。PXE(Pre-boot Execution Environment)协议可以使计算机通过网络启动。此协议采用的是C/S结构,即大家熟知的客户机和服务器结构,其中PXE Client在网卡的ROM中。当计算机处于引导过程时,BIOS把PXE Client调入内存中执行,然后由PXE Client将放置在远端的文件通过网络下载到本地运行。运行PXE协议需要设置DHCP服务器和TFTP服务器。DHCP服务器会给PXE Client(将要安装系统的主机)分配一个IP地址,由于是给PXE Client分配IP地址,所以在配置DHCP服务器时需要增加相应的PXE设置。此外,在PXE Client的ROM中,已经存在了TFTP Client,那么它就可以通过TFTP协议到TFTP Server上下载所需的文件了。
2.什么是Kickstart
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序先会去查找Kickstart生成的文件,如果找到合适的参数,就采用这些参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。
3.PXE+Kickstart的安装条件和详细步骤
执行PXE+Kickstart安装需要的设备为:
DHCP服务器。
TFTP服务器。
Kickstart所生成的ks.cfg配置文件。
一台存放系统安装文件的服务器,如NFS、HTTP或FTP服务器。
一台带有PXE支持网卡的主机。
系统环境介绍如下:服务器系统为CentOS 5.8 x86_64,IP为192.168.11.29。由于是化安装的,我们在后面要用到system-config-kickstart工具,它必须依赖于X Windows,所以我们要提前安装好X Windows及GNOME并重启系统。
安装X Windows及GNOME的步骤如下所示。
先装X Windows和GNOME桌面环境,命令如下所示:
yum-y groupinstall 'X Window System'
yum-y groupinstall 'GNOME Desktop Envir