第1章 Linux简介和网络安装 1
1.1 Linux简介 1
1.1.1 UNIX操作系统的诞生 1
1.1.2 GNU早期简史 2
1.1.3 POSIX标准的发展史 2
1.1.4 Linux概述 3
1.1.5 Linux和开源软件的商业化 4
1.1.6 Linux和开源软件的商业模式 5
1.2 Linux内核及其发行版本 6
1.2.1 Linux发行版本概述 6
1.2.2 Linux内核的变迁 6
1.2.3 Linux主要发行版本 8
1.3 使用网络安装Linux 10
1.3.1 安装Linux的几种方法 10
1.3.2 配置PXE服务器 10
1.4 系统基本配置 13
1.4.1 设置一个系统管理员账号 13
1.4.2 yum配置 14
1.4.3 配置系统服务 16
第2章 Linux系统日常运维管理 19
2.1 Linux用户管理 19
2.1.1 基于命令行管理工具 19
2.1.2 使用图形化工具管理用户 34
2.2 软件包管理 37
2.2.1 RPM软件包管理 37
2.2.2 YUM软件包管理 45
2.2.3 使用图形化工具 51
2.3 Linux文件管理 53
2.3.1 基于命令行的文件管理 53
2.3.2 基于图形化的文件管理工具 76
2.4 Linux计划任务管理 80
2.4.1 at相关命令 80
2.4.2 at相关命令使用实例 82
2.4.3 系统资源的定时调用(使用cron) 83
2.4.4 Linux计划任务图形化工具Gnome-schedule 85
第3章 使用运维工具Puppet管理计算机 88
3.1 Puppet简介 88
3.1.1 什么是Puppet 88
3.1.2 客户端支持 88
3.1.3 工作原理 89
3.1.4 为什么要使用Puppet 90
3.1.5 Puppet与其他自动化工具对比 90
3.2 在CentOS 6上安装Puppet配置管理工具 91
3.2.1 安装环境 91
3.2.2 安装Puppet服务 91
3.2.3 在master上安装和启用Puppet服务 91
3.2.4 安装Puppet客户端 92
3.2.5 修改客户端配置文件 92
3.2.6 生成一个SSL证书 92
3.2.7 使用Hello,world测试一下 93
3.2.8 在服务端安装Puppet的dashboard工具 94
3.3 使用Puppet进行文件管理 97
3.3.1 理解Puppet目录结构 97
3.3.2 理解主配置文件puppet.conf 97
3.3.3 理解主机配置文件site.PP 99
3.3.4 Puppet服务器端的配置 100
3.3.5 Puppet文件管理重要参数实例 102
3.3.6 Puppetfilebucket文件管理实战 107
第4章 Linux运维中的存储管理 111
4.1 磁盘存储管理 111
4.1.1 Linux磁盘管理工具命令 111
4.1.2 为Linux添加新硬盘 125
4.1.3 Linux磁盘配额配置 127
4.1.4 Linux磁盘RAID配置 132
4.1.5 使用Palimpsest磁盘工具 135
4.1.6 主要功能 136
4.1.7 使用GParted分区编辑器 139
4.2 LVM管理工具 144
4.2.1 LVM基础 144
4.2.2 命令行LVM配置实战 148
4.2.3 使用system-config-lvm管理LVM 154
4.3 iSCSI使用方法 158
4.3.1 iSCSI技术简介 158
4.3.2 Linux iSCSI配置 161
第5章 Linux运维的网络管理 165
5.1 Linux网络基础 165
5.1.1 Linux网络结构的特点 165
5.1.2 Linux下端口号分配 167
5.1.3 Linux的TCP/IP网络配置 169
5.2 Linux运维常用网络管理命令 170
5.2.1 arp:管理系统中的ARP高速缓存 170
5.2.2 arpwatch:监听ARP记录 171
5.2.3 arping:发送ARP请求到一个相邻主机 172
5.2.4 finger:查找并显示用户信息 173
5.2.5 ifconfig:设置网络接口 174
5.2.6 iwconfig:设置无线网卡 175
5.2.7 hostname:显示主机名 179
5.2.8 ifup:激活设备 180
5.2.9 ifdown:禁用网络设备 181
5.2.10 mii-tool:调整网卡模式 181
5.2.11 route:设置路由表 182
5.2.12 netstat:查看网络连接 184
5.2.13 ping:检测主机的连通性 185
5.2.14 traceroute:检查数据包所经过的路由器 186
5.2.15 wget:下载文件 188
5.2.16 telnet:远程登录 191
5.2.17 ethtool:查询及设置网卡参数 192
5.2.18 tc:显示和维护流量控制设置 193
5.3 使用NetworkManager和Wcid配置网络连接 194
5.3.1 NetworkManager简介 194
5.3.2 使用NetworkManager配置有线网络接口 195
5.3.3 使用NetworkManager连接Wi-Fi(802.11)网络 196
5.3.4 使用Wicd网络管理器 197
5.4 掌握Linux运维常用网络监控工具 199
5.4.1 使用iftop工具监控网卡的流量 199
5.4.2 使用ngrep监控网络接口 200
5.4.3 利用Bwm-NG监测带宽 202
5.4.4 lsof 203
5.4.5 使用IPTraf监控Linux网络 205
5.4.6 使用Tcpdump 207
5.4.7 使用Nmap网络扫描工具 211
5.4.8 使用Wireshark网络包分析 215
第6章 Linux打印管理 221
6.1 Linux打印系统发展路线图 221
6.1.1 PostScript语言 221
6.1.2 BSD LPD打印系统 223
6.1.3 LPRng打印系统 224
6.1.4 通用UNIX打印系统(CUPS) 225
6.2 使用图形化打印配置管理工具 227
6.2.1 Linux打印过程 227
6.2.2 下载安装驱动 227
6.2.3 使用system-config-printer 228
6.3 使用CUPS打印系统 231
6.3.1 了解Alternative机制 231
6.3.2 启动CUPS打印服务 231
6.3.3 管理CUPS打印系统 231
6.4 使用命令行工具 233
6.4.1 cupsd:通用打印程序守护进程 233
6.4.2 lpadmin:配置LP打印服务 234
6.4.3 lp:打印文件 236
6.4.4 lpstat:显示行式打印机状态信息 237
6.4.5 lpr:排队打印作业 238
6.4.6 lprm:打印队列删除任务 238
6.4.7 lpc:控制打印机 239
6.4.8 lpq:检查假脱机队列 240
6.4.9 lpinfo:显示驱动和设备 241
6.4.10 lpmove:将作业从一个队列移动到另外一个队列中 242
6.4.11 lpd:行打印守护进程 243
6.4.12 Linux打印故障诊断 244
第7章 Linux运维的日志管理 245
7.1 日志管理简介 245
7.2 Linux日志管理工具 246
7.2.1 Linux日志管理工具简介 246
7.2.2 日志管理软件包psacct简介 247
7.2.3 lastcomm命令 247
7.2.4 8a命令 249
7.2.5 ac命令 250
7.2.6 accton命令 252
7.2.7 其他日志管理实用工具 253
7.3 Linux日志管理技巧 255
7.3.1 使用logrotate工具 255
7.3.2 搜索日志文件的策略和技巧 256
7.3.3 手动搜索日志文件 256
7.3.4 使用logwatch工具搜索日志文件 257
7.3.5 其他日志工具 258
7.4 使用图形化工具:系统日志查看器 258
7.4.1 系统日志查看器的安装 258
7.4.2 快速使用入门 258
7.5 配置rsyslogd 260
7.5.1 配置rsylogd简介 260
7.5.2 安装配置 262
7.5.3 输出rsyslog日志文件 268
第8章 SELinux和防火墙以及安全审计工具的使用 273
8.1 使用SELinux 273
8.1.1 SELinux起源 273
8.1.2 SELinux构架 274
8.1.3 SELinux相关的文件 277
8.1.4 SELinux使用实战 277
8.1.5 SELinux布尔值和上下文配置 279
8.1.6 使用命令行工具管理SELinux 283
8.1.7 SELinux日志文件的使用 295
8.1.8 SELinux和网络服务设置 295
8.2 Linux安全审计工具 301
8.2.1 Linux用户空间审计系统简介 301
8.2.2 安装软件包并且配置审计守护进程 302
8.2.3 用户空间审计系统的使用实例 306
8.3 防火墙设置 312
8.3.1 防火墙简介 312
8.3.2 Linux防火墙 315
8.3.3 iptables配置实战 328
8.3.4 使用system-config-firewall和Fwbuilder快速构架Linux防火墙 330
第9章 Linux系统运维中的数据备份恢复 338
9.1 Linux备份基础 338
9.1.1 什么是备份 338
9.1.2 备份前需考虑的因素 338
9.1.3 选择备份介质 339
9.1.4 Linux备份策略 340
9.2 Linux磁带机备份和恢复 342
9.2.1 磁带存储简介 342
9.2.2 磁带管理命令 343
9.3 Linux常用备份工具的使用 348
9.3.1 用mirrordir做硬盘分区镜像 348
9.3.2 使用partimage备份恢复Linux分区 349
9.3.3 使用afio工具备份 351
9.3.4 图形化工具LuckyBackup 352
9.3.5 Linux备份恢复工具 353
9.4 使用网络备份工具Bacula 354
9.4.1 Bacula简介 354
9.4.2 Bacula的安装及配置 357
9.4.3 执行备份和恢复 362
9.4.4 使用图形化工具bacula-console-bat 367
9.5 使用rsync 368
9.5.1 rsync简介 368
9.5.2 rsync两种部署架构 369
9.5.3 rsync命令格式 370
9.5.4 rsync使用实例 372
9.5.5 配置rsycn服务 374
第10章 Linux集群和负载均衡管理 380
10.1 Linux集群技术简介 380
10.1.1 集群计算IEEE工作组 380
10.1.2 集群系统 380
10.1.3 集群的作用 381
10.1.4 Linux集群的作用 382
10.1.5 Linux集群体系结构 382
10.1.6 Linux集群分类 383
10.1.7 Linux集群发展趋势 384
10.1.8 创建一个Linux集群 385
10.1.9 成功配置Linux集群的建议 387
10.2 LVS安装及配置 389
10.2.1 LVS诞生背景 389
10.2.2 IPVS负载调度算法 389
10.2.3 LVS系统介绍 390
10.3 组建基本的LVS系统 393
10.3.1 ipvsadm的安装和使用 393
10.3.2 调度服务器设置流程 395
10.3.3 应用服务器设置流程 396
10.3.4 测试LVS系统 396
10.3.5 使用Piranha配置调度服务器 397
10.4 使用Corosync和Pacemaker 402
10.4.1 安装及配置Corosync和Pacemaker 402
10.4.2 配置虚拟IP地址 404
10.4.3 监测http服务 405
10.5 使用pen工具配置负载均衡 407
10.5.1 pen简介 407
10.5.2 网络结构介绍 407
10.5.3 安装配置过程 407
10.5.4 通过设置脚本文件监控pen状态 410
第11章 Linux虚拟化配置 412
11.1 Linux虚拟化简介 412
11.1.1 Linux虚拟化类型 412
11.1.2 Linux虚拟化项目 414
11.1.3 Linux服务器虚拟化的重要性 415
11.2 VirtualBox虚拟化技术 416
11.2.1 VirtualBox简介 416
11.2.2 Linux下安装VirtualBox 418
11.2.3 启动VirtualBox 419
11.2.4 建立一个虚拟机 419
11.2.5 虚拟机配置 421
11.2.6 使用VirtualBox在Linux下安装运行WindowsXP SP3的技巧 422
11.2.7 增强功能工具的其他功能 424
11.2.8 Virtualbox虚拟机的备份和快照管理 426
11.2.9 Linux平台下Virtualbox虚拟机硬盘的扩容 428
11.2.10 Virtualbox虚拟机硬盘文件类型格式转换 430
11.3 KVM虚拟机配置 431
11.3.1 KVM虚拟机简介 431
11.3.2 安装及配置KVM相关软件 432
11.3.3 使用virt-manager建立一个KVM虚拟机 433
11.3.4 KVM虚拟机功能简介 436
11.3.5 使用命令行执行高级管理任务 440
11.4 KVM虚拟机存储设置 444
11.4.1 KVM虚拟机存储模式解析 444
11.4.2 创建基于分区的存储池 445
11.4.3 创建基于目录的存储池 446
11.4.4 创建基于LVM的存储池 447
11.4.5 使用命令行方式管理存储池 448
11.5 KVM SPICE配置 450
11.5.1 SPICE简介 450
11.5.2 安装及配置SPICE服务器 451
11.5.3 使用SPICE客户机 452
11.6 远程管理虚拟机 454
11.6.1 KVM虚拟机远程管理 454
11.6.2 使用phpVirtualBox远程管理VirtualBox虚拟机 454
11.7 Ovirt虚拟化工具平台搭建 457
11.7.1 Ovirt简介 457
11.7.2 Ovirt环境的说明 458
11.7.3 安装配置Ovirt Node 1 459
11.7.4 安装配置Ovirt Node 2 461
11.7.5 使用浏览器访问Web控制台 461
第12章 Linux运维中的Shell应用 465
12.1 Shell简介 465
12.1.1 什么是Shell 465
12.1.2 Shell类型 466
12.2 Linux Shell的功能 467
12.2.1 通配符 467
12.2.2 重定向 467
12.2.3 管道 469
12.2.4 别名 469
12.2.5 命令行补全 470
12.2.6 命令替换 470
12.2.7 命令历史 471
12.3 Linux Shell元字符 474
12.4 Shell变量和Shell环境 475
12.5 Linux运维中的Shell应用实例 476
12.5.1 使用Shell脚本检测系统磁盘空间 476
12.5.2 列出某一目录下,空间用量超过指定大小的子目录 477
12.5.3 使用一个Shell脚本获取网站的注册信息 478
12.5.4 检测进程CPU利用率和检测进程内存使用量 478
12.5.5 对Linux系统进行全面的检查 479
第13章 Linux运维中的系统监控 481
13.1 监控原理 481
13.1.1 性能监控方法 481
13.1.2 proc文件系统的特点 481
13.1.3 lproc文件系统的功能 482
13.1.4 监控系统负载 482
13.1.5 使用phpsysinfo 483
13.1.6 监控Linux进程运行 485
13.1.7 监控内存使用情况 485
13.1.8 监控中央处理器 487
13.1.9 使用iostat监控I/O性能 489
13.1.10 监控网络性能 490
13.1.11 SAR 492
13.1.12 使用kSar 497
13.2 Linux核心硬件状态监控 502
13.2.1 使用命令行工具检测主板、CPU 502
13.2.2 使用smartmontools检测硬盘健康状态 504
13.3 使用Nagios 506
13.3.1 Nagios简介 506
13.3.2 安装Nagios 507
13.3.3 添加监测目标 509
13.3.4 在监测主机上安装nrpe代理 510
13.3.5 设置报警 511
13.3.6 安装其他插件 513
13.3.7 配置SMTP插件 514
13.3.8 配置POP插件 515
13.3.9 配置IMAP插件 515
13.4 Linux网络性能测试工具 517
13.4.1 网络性能测试简介 517
13.4.2 利用ipref测试网络性能 518
13.4.3 使用tcptrace 520
13.5 使用inotify监控Linux文件系统事件 528
13.5.1 Inotify简介 528
13.5.2 为什么需要监控文件系统 529
13.5.3 Inotify到底是什么 529
13.5.4 安装软件包 529
13.5.5 开始使用工具 529
13.5.6 建立Inotify初始化文件 530
13.5.7 进行基本的文件操作 531