名稱:Linux運維之道
第1篇 基礎知識
第1章 部署操作系統
1.1 光盤安裝Linux操作系統
1.1.1 操作系統版本的選擇 2
1.1.2 光盤安裝Linux系統案例 2
1.2 無人職守自動安裝Linux操作系統
1.2.1 大規模部署案例 15
1.2.2 PXE簡介 16
1.2.3 Kickstart技術 17
1.2.4 配置安裝服務器 18
1.2.5 自動化安裝案例 19
1.3 常見問題分析
第2章 命令工具
2.1 基本命令
2.1.1 目錄及文件的基本操作 31
2.1.2 查看文件內容 35
2.1.3 鏈接文件 37
2.1.4 壓縮及解壓 38
2.1.5 命令使用技巧 39
2.1.6 幫助 40
2.2 Vim文檔編輯
2.2.1 Vim工作模式 42
2.2.2 Vim光標操作 43
2.2.3 Vim編輯文檔 43
2.2.4 Vim查找與替換 44
2.2.5 Vim保存與退出 45
2.2.6 Vim小技巧 45
2.3 賬戶與安全
2.3.1 賬戶及組的概念 46
2.3.2 創建賬戶及組 46
2.3.3 修改賬戶及組 48
2.3.4 刪除賬戶及組 49
2.3.5 賬戶與組文件解析 49
2.3.6 文件及目錄權限 51
2.3.7 賬戶管理案例 53
2.3.8 ACL訪問控制權限 54
2.4 存儲管理
2.4.1 磁盤分區 56
2.4.2 格式化與掛載文件系統 60
2.4.3 LVM邏輯卷概述 62
2.4.4 創建LVM分區實例 64
2.4.5 修改LVM分區容量 68
2.4.6 刪除LVM分區 69
2.4.7 RAID磁盤陣列概述 69
2.4.8 RAID級別 70
2.4.9 創建與管理軟RAID實例 74
2.4.10 RAID性能測試 77
2.4.11 RAID故障模擬 78
2.5 軟件管理
2.5.1 Linux常用軟件包類型 79
2.5.2 RPM軟件包管理 79
2.5.3 使用YUM安裝軟件包 81
2.5.4 YUM使用技巧 83
2.5.5 源碼編譯安裝軟件 84
2.5.6 常見問題分析 85
2.5.7 服務管理 86
2.6 計劃任務
2.6.1 at一次性計劃任務 88
2.6.2 cron周期性計劃任務 89
2.6.3 計劃任務權限 90
2.7 性能監控
2.7.1 監控CPU使用情況——uptime命令 90
2.7.2 監控內存及交換分區使用情況——free命令 91
2.7.3 監控磁盤使用情況——df命令 91
2.7.4 監控網絡使用情況——ifconfig和netstat命令 92
2.7.5 監控進程使用情況——ps和top命令 94
2.8 網絡配置
2.8.1 命令行設置網絡參數 95
2.8.2 文件修改網絡參數 97
2.8.3 網絡故障排錯 99
2.9 內核模塊
2.9.1 內核模塊存放位置 101
2.9.2 查看已加載內核模塊 102
2.9.3 加載與卸載內核模塊 102
2.9.4 修改內核參數 103
第3章 自動化運維
3.1 Shell簡介
3.2 Bash功能介紹
3.2.1 命令歷史 105
3.2.2 命令別名 105
3.2.3 管道與重定向 106
3.2.4 快捷鍵 107
3.3 Bash使用技巧
3.3.1 重定向技巧 107
3.3.2 命令序列使用技巧 108
3.3.3 作業控制技巧 108
3.3.4 花括號{}的使用技巧 109
3.4 變量
3.4.1 自定義變量 109
3.4.2 變量的使用范圍 110
3.4.3 環境變量 111
3.4.4 位置變量 112
3.4.5 變量的展開替換 112
3.4.6 數組 113
3.4.7 算術運算與測試 114
3.5 Shell引號
3.5.1 反斜線 116
3.5.2 單引號 117
3.5.3 雙引號 117
3.5.4 反引號 117
3.6 正則表達式
3.6.1 基本正則表達式(Regular Expression) 119
3.6.2 擴展正則表達式(Extended Regular Expression)122
3.6.3POSIX規范 122
3.6.4GNU規范 123
3.7 Sed
3.7.1Sed簡介 124
3.7.2Sed基本語法格式 124
3.7.3Sed入門范例 125
3.7.4 Sed指令與腳本 127
3.7.5 Sed高級應用 132
3.8 Awk
3.8.1 Awk簡介 136
3.8.2 Awk工作流程 136
3.8.3 Awk基本語法格式 137
3.8.4 Awk操作指令 138
3.8.5Awk高級應用 142
3.9 Shell腳本
3.9.1 腳本格式范例 146
3.9.2 運行腳本的方式 146
3.9.3Shell腳本簡單案例 147
3.9.4 判斷語句應用 150
3.9.5 循環語句應用 154
3.9.6 控制語句應用 158
3.9.7 Shell函數應用 159
3.9.8 綜合案例 162
3.9.9 圖形腳本 166
第2篇 網絡服務
第4章 搭建網絡服務
4.1 NFS文件共享
4.1.1 NFS服務器配置 171
4.1.2 客戶端訪問NFS共享 173
4.1.3 NFS高級設置 174
4.1.4 常見問題分析 177
4.2 Samba文件共享
4.2.1 快速配置Samba服務器 178
4.2.2 訪問Samba共享 180
4.2.3 配置文件詳解 182
4.2.4 Samba應用案例 183
4.2.5 常見問題分析 186
4.3 vsftpd文件共享
4.3.1 FTP工作模式 188
4.3.2 安裝與管理vsftpd 189
4.3.3 配置文件解析 189
4.3.4 賬戶權限 190
4.3.5 vsftpd應用案例 191
4.3.6 常見問題分析 195
4.4 ProFTPD文件共享
4.4.1 安裝ProFTPD軟件 196
4.4.2 配置文件解析 197
4.4.3 ProFTPD權限設置 198
4.4.4 虛擬用戶應用案例 198
4.4.5 常見問題分析 202
4.5 Subversion版本控制
4.5.1 Subversion簡介 202
4.5.2 Subversion服務器對比 204
4.5.3 安裝Subversion軟件 205
4.5.4 svnserve服務器搭建 205
4.5.5 svnserve+SSH服務器搭建 210
4.5.6 Apache+SVN服務器搭建 211
4.5.7 常見問題 213
4.6 網絡存儲服務器
4.6.1 iSCSI網絡存儲 215
4.6.2 Rsync文件同步 219
4.6.3 Rsync+Inotify實現文件自動同步 225
4.7 DHCP服務器
4.7.1 安裝軟件 231
4.7.2 配置文件解析 232
4.7.3 DHCP應用案例 233
4.7.4 常見問題分析 234
4.8 DNS域名服務器
4.8.1 DNS簡介 235
4.8.2 安裝DNS軟件 237
4.8.3 配置文件解析 238
4.8.4 部署主域名服務器 241
4.8.5 部署從域名服務器 245
4.8.6 DNS視圖應用案例 247
4.8.7 常見問題分析 249
4.9 Apache網站服務器
4.9.1 Apache簡介 250
4.9.2 安裝Apache軟件 250
4.9.3 配置文件解析 252
4.9.4 虛擬主機應用案例 257
4.9.5 網站安全應用案例 259
4.9.6 常見問題分析 260
4.10 Nginx網站服務器
4.10.1 Nginx簡介 261
4.10.2 安裝Nginx軟件 261
4.10.3 配置文件解析 264
4.10.4 虛擬主機應用案例 267
4.10.5 SSL網站應用案例 269
4.10.6 HTTP響應狀態碼 270
4.11 數據庫基礎
4.11.1 MySQL數據庫簡介 271
4.11.2 安裝MySQL軟件 272
4.11.3 MySQL管理工具 273
4.11.4 數據庫定義語言 278
4.11.5 數據庫操作語言 283
4.11.6 數據庫查詢語言 285
4.11.7 MySQL與安全 286
4.11.8 MySQL數據庫備份與還原 289
4.12 動態網站架構案例
4.12.1 論壇系統應用案例 291
4.12.2 博客系統應用案例 297
第5章 系統監控
5.1 Cacti監控系統
5.1.1 簡介 301
5.1.2 Cacti監控應用案例 302
5.2 Nagios監控系統
5.2.1 簡介 310
5.2.2 Nagios監控應用案例 311
第6章 網絡安全
6.1 iptables防火墻
6.1.1 iptables防火墻語法格式 324
6.1.2 iptables防火墻應用案例 327
6.1.3 防火墻備份與還原 330
6.2 SELinux簡介
6.2.1 SELinux配置文件 331
6.2.2 SELinux軟件包 332
6.2.3 SELinux安全上下文 333
6.2.4 SELinux排錯 334
6.2.5 修改安全上下文 336
6.2.6 查看與修改布爾值 338
6.2.7 SELinux應用案例 339
6.2.8 httpd相關的SELinux安全策略 339
6.2.9 FTP相關的SELinux安全策略 340
6.2.10 MySQL相關的SELinux安全策略 341
6.2.11 NFS相關的SELinux安全策略 342
6.2.12 Samba相關的SELinux安全策略 343
6.3 OpenVPN
6.3.1 OpenVPN簡介 344
6.3.2 安裝OpenVPN服務 345
6.3.3 OpenVPN客戶端 348
第3篇 高級應用
第7章 虛擬化技術
7.1 虛擬化產品對比
7.1.1 VMware虛擬化技術 353
7.1.2 Xen虛擬化技術 353
7.1.3 KVM虛擬化技術 354
7.2 KVM虛擬化應用案例
7.2.1 安裝KVM組件 354
7.2.2 創建虛擬機操作系統 355
7.2.3 監控虛擬機操作系統 360
7.2.4 命令工具使用技巧 362
7.2.5 虛擬存儲與虛擬網絡 367
第8章 集群及高可用
8.1 集群
8.1.1 LVS負載均衡簡介 377
8.1.2 基于NAT的LVS負載均衡 378
8.1.3 基于TUN的LVS負載均衡 379
8.1.4 基于DR的LVS負載均衡 380
8.1.5 LVS負載均衡調度算法 381
8.1.6 部署LVS服務 382
8.1.7 LVS負載均衡應用案例 385
8.1.8 常見問題分析 392
8.2 Keepalived雙機熱備
8.2.1 Keepalived簡介 393
8.2.2 VRRP協議簡介 394
8.2.3 安裝Keepalived服務 394
8.2.4 配置文件解析 395
8.2.5 Keepalived+LVS應用案例 396
8.2.6 常見問題分析 404
8.3 Squid代理服務器
8.3.1 Squid簡介 405
8.3.2 安裝Squid服務 405
8.3.3 常見代理服務器類型 406
8.3.4 配置文件解析 407
8.3.5 Squid應用案例 408
8.4 HAProxy負載均衡
8.4.1 HAProxy簡介 412
8.4.2 配置文件解析 413
8.4.3 HAProxy應用案例 416
8.5 Nginx高級應用
8.5.1 Nginx負載均衡 420
8.5.2 Nginx負載均衡案例 422
8.5.3 Nginx rewrite規則 425
8.6 MySQL高可用
8.6.1 MySQL復制 429
8.6.2 一步一步操作MySQL復制 430