《循序漸進Linux(第2版) 基礎知識 服務器搭建 系統管理 性能調優 虛擬化與集群應用》從基礎知識入手,系統講解了Linux系統結構、shell、主流服務器搭建及故障排除、用戶權限管理、磁盤存儲管理、文件系統管理、內存管理和系統進程管理等關鍵技術,深入研究了系統性能優化思路、系統性能評估與優化、集群技術、負載均衡等Linux熱點主題。
《循序漸進Linux(第2版) 基礎知識 服務器搭建 系統管理 性能調優 虛擬化與集群應用》強調學習方法以及技術能力的培養,在每個知識點后都給出了大量操作案例,包括了詳細的操作步驟,具有很強的可操作性,并對案例進行分析,提供了解決問題的思路和方法,做到了授人以漁。
《循序漸進Linux(第2版) 基礎知識 服務器搭建 系統管理 性能調優 虛擬化與集群應用》適合希望系統、學習Linux技術的初學者作為教材,也適合Linux系統管理員、數據庫管理人員、網絡安全管理人員、系統集成人員和系統架構師參考。
高俊峰,網名南非螞蟻,Linux專家,知名IT作家。畢業于西安電子科技大學通信工程專業。曾就職于新浪網、阿里云(原萬網),任職系統架構師。具有多年的自動化運維和管理經驗,擅長Linux、集群應用、Mysql、Oracle等方面的系統管理、性能調優,規劃設計,實戰經驗豐富。曾出版《循序漸進Linux》、《高性能Linux服務器構建實戰》等暢銷Linux書籍。
篇 基礎知識篇
第1章 學習Linux的經驗與技巧3
1.1 Linux在各領域發展的現狀與趨勢4
1.1.1 Linux與開源軟件4
1.1.2 Linux在服務器領域的發展4
1.1.3 Linux在桌面領域的發展5
1.1.4 Linux在移動嵌入式領域的
發展5
1.1.5 Linux在云計算/大數據領域的
發展5
1.2 選擇適合自己的Linux發行版5
1.2.1 常見的Linux發行版6
1.2.2 初學者入門—
CentOS系列8
1.2.3 桌面平臺—
Ubuntu Linux9
1.2.4 企業級應用—
RHEL/CentOS系列9
1.3 養成良好的Linux操作習慣9
1.3.1 一定要習慣命令行方式10
1.3.2 理論結合實踐10
1.3.3 學會使用Linux聯機幫助10
1.3.4 學會獨立思考問題,獨立
解決問題11
1.3.5 學習專業英語11
1.3.6 Linux學習路線圖11
1.4 用虛擬機技術學習Linux13
1.4.1 虛擬機技術13
1.4.2 使用虛擬機技術的好處13
1.4.3 虛擬機的運行環境和硬件需求13
1.4.4 虛擬機的安裝與使用14
1.5 Linux學習資源20
1.5.1 網絡資源、搜索引擎、論壇20
1.5.2 有本書在身邊20
第2章 Linux系統的安裝與基礎配置21
2.1 安裝需求22
2.2 Linux的幾種安裝方式22
2.2.1 硬盤安裝方式22
2.2.2 U盤安裝方式23
2.2.3 網絡安裝方式23
2.2.4 光驅安裝方式23
2.3 光驅安裝過程24
2.3.1 分區命名方案24
2.3.2 開始安裝25
2.4 U盤安裝過程44
第3章 Linux系統基本結構47
3.1 Linux控制臺的使用48
3.2 系統與硬件48
3.2.1 Linux硬件資源管理48
3.2.2 Linux外在設備的使用53
3.3 文件系統結構介紹55
3.3.1 目錄結構55
3.3.2 系統核心組成60
3.4 運行機制介紹61
3.4.1 Linux初始化init系統62
3.4.2 runlevel到target的改變62
3.4.3 系統關機過程64
3.5 系統服務管理工具systemd66
3.5.1 啟動、停止、重啟服務66
3.5.2 查看、禁止、啟用服務67
3.5.3 systemd命令和sysvinit命令
對比68
3.6 Linux與SecureCRT69
3.6.1 SecureCRT概述69
3.6.2 SecureCRT的安裝與使用69
3.6.3 與SecureCRT相關的Linux
命令70
第4章 Linux常用命令及使用技巧72
4.1 Linux下的shell簡介73
4.1.1 什么是shell73
4.1.2 shell命令的語法分析74
4.2 系統管理與維護80
4.2.1 ls命令80
4.2.2 pwd命令82
4.2.3 cd命令82
4.2.4 date命令83
4.2.5 passwd命令84
4.2.6 su命令85
4.2.7 clear命令86
4.2.8 man命令86
4.2.9 who命令86
4.2.10 w命令87
4.2.11 uname命令88
4.2.12 uptime命令89
4.2.13 last命令90
4.2.14 dmesg命令90
4.2.15 free命令91
4.2.16 ps命令91
4.2.17 top命令92
4.3 文件管理與編輯95
4.3.1 mkdir命令95
4.3.2 more命令96
4.3.3 cat命令97
4.3.4 diff命令98
4.3.5 grep命令99
4.3.6 rm命令100
4.3.7 touch命令101
4.3.8 ln命令102
4.3.9 file命令104
4.3.10 cp命令105
4.3.11 find命令105
4.3.12 split命令108
4.3.13 mv命令109
4.4 壓縮與解壓109
4.4.1 zip/unzip命令109
4.4.2 gzip/gunzip命令111
4.4.3 bzip2/bunzip2命令112
4.4.4 tar命令113
4.4.5 dd命令116
4.4.6 cpio命令117
4.5 磁盤管理與維護118
4.5.1 df命令118
4.5.2 du命令119
4.5.3 fsck命令120
4.5.4 sync命令122
4.5.5 eject命令122
4.5.6 mount/umount命令123
4.6 網絡設置與維護126
4.6.1 ifconfig命令126
4.6.2 scp命令128
4.6.3 netstat命令129
4.6.4 traceroute命令131
4.6.5 telnet命令133
4.6.6 wget命令134
4.7 文本編輯工具vi135
第5章 Linux下軟件的安裝與管理139
5.1 源碼安裝方式140
5.1.1 下載、解壓源碼140
5.1.2 分析安裝平臺環境140
5.1.3 編譯、安裝軟件141
5.1.4 通過源碼安裝Apache Http
server142
5.2 RPM包方式安裝143
5.2.1 RPM介紹143
5.2.2 RPM包的種類和組成144
5.2.3 RPM工具的使用145
5.3 yum安裝方式156
5.3.1 yum的安裝與配置157
5.3.2 yum的特點與基本用法158
5.3.3 幾個不錯的yum源161
5.4 二進制軟件安裝方式161
5.4.1 安裝".tar.gz、.bz2"
二進制軟件包162
5.4.2 提供安裝程序的軟件包162
第6章 Linux服務器網絡配置165
6.1 網卡驅動的安裝166
6.1.1 網卡驅動安裝的一般思路166
6.1.2 編譯安裝網卡172
6.2 配置Linux網絡177
6.2.1 不同Linux發行版的網絡配置文件177
6.2.2 網絡配置文件詳解178
6.3 Linux網絡應用183
6.3.1 Linux下的IP別名功能183
6.3.2 開啟Linux轉發功能185
6.3.3 路由的概念與配置185
6.3.4 Linux路由器的架設192
第7章 架設Linux服務器196
7.1 使用OpenSSH遠程管理Linux
服務器197
7.2 Web服務器的搭建198
7.2.1 Apache與Tomcat整合的
必要性199
7.2.2 Apache和Tomcat連接器200
7.2.3 Apache與Tomcat以及
JK模塊的安裝200
7.2.4 Apache與Tomcat整合配置202
7.3 LAMP服務器的搭建217
7.3.1 LAMP與WordPress概述217
7.3.2 LAMP服務環境的搭建218
7.3.3 測試LAMP環境安裝的
正確性226
7.4 DNS服務器的搭建227
7.4.1 DNS服務器概述227
7.4.2 DNS服務器的搭建227
7.5 Samba服務器的搭建235
7.5.1 Samba的概念和功能235
7.5.2 Samba的安裝與配置235
第8章 構建高性能的MySQL數據庫
系統246
8.1 MySQL與MariaDB247
8.2 常見的高可用MySQL解決
方案247
8.2.1 主從復制解決方案248
8.2.2 MMM高可用解決方案248
8.2.3 Heartbeat/SAN高可用解決
方案248
8.2.4 Heartbeat/DRBD高可用解決
方案249
8.2.5 MySQL Cluster高可用解決
方案249
8.3 通過Keepalived搭建MySQL
雙主模式的高可用集群系統249
8.3.1 MySQL復制介紹249
8.3.2 MySQL復制的實現原理250
8.3.3 MySQL復制的常用架構251
8.3.4 MySQL主主互備模式
架構圖252
8.3.5 MySQL主主互備模式配置253
8.3.6 配置Keepalived實現MySQL
雙主高可用257
8.3.7 測試MySQL主從同步功能260
8.3.8 測試Keepalived實現MySQL
故障切換261
8.4 通過MMM構建MySQL高可用
集群系統263
8.4.1 MMM高可用MySQL方案
簡介263
8.4.2 MMM典型應用方案264
8.4.3 MMM高可用MySQL方案
架構圖266
8.4.4 MMM的安裝與配置267
8.4.5 MMM的管理271
8.4.6 測試MMM實現MySQL
高可用功能274
8.5 MySQL讀、寫分離解決方案277
8.5.1 常見的MySQL讀、寫分離
方案277
8.5.2 通過Amoeba實現MySQL讀、
寫分離278
第9章 Linux服務器安全策略287
9.1 網絡安全概述288
9.1.1 常見攻擊類型288
9.1.2 防范攻擊策略289
9.2 操作系統常用安全策略290
9.2.1 軟件的升級290
9.2.2 端口與服務291
9.2.3 密碼登錄安全295
9.2.4 其他安全設置298
9.3 Linux軟件防火墻iptables301
9.3.1 iptables的使用環境302
9.3.2 iptables的使用規范與語法304
9.3.3 防火墻規則的查看與清除308
9.3.4 制定防火墻規則309
9.4 Linux系統的備份315
9.4.1 為何要備份Linux系統315
9.4.2 Linux系統需要備份的數據316
9.4.3 備份的介質與方式316
9.4.4 制定備份策略318
9.4.5 備份工具的選擇319
第10章 Linux故障排查思路與案例325
10.1 Linux下常見系統故障的處理326
10.1.1 處理Linux系統故障的
思路326
10.1.2 忘記Linux root密碼326
10.1.3 Linux系統無法啟動的
解決辦法329
10.2 Linux下常見網絡故障處理337
10.3 "Read-only file system"錯誤與
解決案例342
10.4 通過su命令切換用戶帶來的
困惑344
10.5 因NAS存儲故障引起的
Linux系統恢復案例347
10.5.1 故障現象描述347
10.5.2 問題判斷思路347
10.5.3 問題處理過程348
10.5.4 解決問題350
第11章 Linux用戶權限管理353
11.1 用戶與用戶組管理概述354
11.1.1 用戶與組的概念354
11.1.2 用戶配置文件概述355
11.2 用戶管理工具介紹360
11.2.1 groupadd/newgrp/groupdel
命令360
11.2.2 useradd/usermod/userdel命令362
11.3 文件與權限的設定366
11.3.1 查看文件的權限屬性366
11.3.2 利用chown改變屬主和
屬組368
11.3.3 利用chmod改變訪問權限369
第12章 Linux磁盤存儲管理372
12.1 磁盤管理的基本概念373
12.1.1 磁盤設備在Linux下的
表示方法373
12.1.2 設備的掛載與使用374
12.1.3 磁盤分區的劃分標準375
12.2 利用fdisk工具劃分磁盤分區377
12.2.1 fdisk參數含義介紹377
12.2.2 fdisk實例講解378
12.3 利用parted工具規劃磁盤分區385
12.3.1 parted簡介385
12.3.2 parted使用方法385
12.3.3 parted應用實例386
12.4 LVM389
12.4.1 LVM的基本概念389
12.4.2 LVM中的術語390
12.4.3 安裝LVM工具391
12.4.4 LVM的創建與管理391
第13章 Linux文件系統管理401
13.1 文件系統概述402
13.1.1 什么是文件系統402
13.1.2 為什么要使用文件系統402
13.1.3 文件系統的使用流程403
13.2 Linux下常用文件系統介紹404
13.2.1 ext3和ext4文件系統404
13.2.2 ReiserFS407
13.2.3 XFS408
13.3 選擇文件系統的標準411
13.4 NFS的使用411
13.4.1 NFS簡介411
13.4.2 NFS的實現原理412
13.4.3 NFS的安裝與配置413
13.5 Linux下常用的數據恢復工具419
13.5.1 如何使用"rm -rf"命令419
13.5.2 extundelete與ext3grep的
異同419
13.5.3 extundelete的恢復原理419
13.5.4 安裝extundelete420
13.5.5 extundelete用法詳解420
13.5.6 實戰:通過extundelete
恢復數據的過程421
第14章 Linux內存管理426
14.1 物理內存和虛擬內存427
14.2 內存的監控428
14.3 交換空間的使用430
14.4 查看進程占用內存432
第15章 Linux系統進程管理434
15.1 進程的概念和分類435
15.2 進程的監控與管理437
15.2.1 利用ps命令監控系統
進程437
15.2.2 利用pstree監控系統進程438
15.2.3 利用top監控系統進程440
15.2.4 利用lsof監控系統進程與
程序441
15.2.5 利用pgrep查詢進程ID443
15.3 任務調度進程crond的使用444
15.3.1 crond簡介444
15.3.2 crontab工具的使用445
15.3.3 使用crontab工具的
注意事項447
15.4 用kill和killall終止進程448
15.4.1 用kill終止進程448
15.4.2 用killall終止進程449
第16章 Linux系統優化思路453
16.1 性能問題綜述454
16.2 影響Linux性能的因素454
16.2.1 系統硬件資源454
16.2.2 操作系統相關資源456
16.2.3 應用程序軟件資源457
16.3 分析系統性能涉及的人員458
16.3.1 Linux運維人員458
16.3.2 系統架構設計人員458
16.3.3 軟件開發人員458
16.4 系統性能分析工具459
16.5 系統性能分析標準461
16.6 本章總結462
第17章 Linux系統性能評估與
優化案例463
17.1 CPU性能評估464
17.1.1 vmstat命令464
17.1.2 sar命令465
17.1.3 iostat命令467
17.1.4 uptime命令467
17.1.5 本節小結467
17.2 內存性能評估468
17.2.1 free 命令468
17.2.2 通過watch與free相結合
動態監控內存狀況469
17.2.3 vmstat命令監控內存469
17.2.4 "sar –r"命令組合470
17.2.5 本節小結470
17.3 磁盤I/O性能評估470
17.3.1 "sar –d"命令組合471
17.3.2 "iostat –d"命令組合472
17.3.3 "vmstat –d"命令組合474
17.3.4 本節小結474
17.4 網絡性能評估475
17.4.1 通過ping命令檢測網絡的
連通性475
17.4.2 通過"netstat –I"命令組合
檢測網絡接口狀況475
17.4.3 通過"netstat –r"命令組合
檢測系統的路由表信息476
17.4.4 通過"sar –n"命令組合顯示系統的網絡運行狀態477
17.4.5 本節小結478
17.5 基于Web應用的性能分析及
優化案例478
17.5.1 基于動態內容的網站優化
案例478
17.5.2 基于動態、靜態內容結合的
網站優化案例480
第18章 虛擬化云計算平臺
Proxmox VE485
18.1 OpenVZ簡介486
18.2 KVM簡介486
18.3 Proxmox VE簡介486
18.4 安裝Proxmox VE487
18.5 Proxmox VE的使用492
18.5.1 Proxmox VE功能選項說明492
18.5.2 創建OpenVZ虛擬機496
18.5.3 創建KVM500
第19章 高性能集群軟件Keepalived506
19.1 集群的定義507
19.2 集群的特點與功能507
19.2.1 高可用性與可擴展性507
19.2.2 負載均衡與錯誤恢復508
19.2.3 心跳監測與漂移IP地址508
19.3 集群的分類509
19.3.1 高可用集群509
19.3.2 負載均衡集群510
19.3.3 分布式計算集群511
19.4 HA集群中的相關術語511
19.5 Keepalived簡介512
19.5.1 Keepalived的用途512
19.5.2 VRRP與工作原理513
19.5.3 Keepalived工作原理513
19.5.4 Keepalived的體系結構514
19.6 Keepalived安裝與配置516
19.6.1 Keepalived的安裝過程516
19.6.2 Keepalived的全局配置518
19.6.3 Keepalived的VRRPD配置518
<