作為一個剛踏入系統管理領域的新手,掌握 Linux 伺服器的基本管理技能是必不可少的。本指南將一步一步帶領您學習 Linux 伺服器管理的核心技術,包括 MySQL 資料庫管理、系統效能監控、檔案傳輸,以及防火牆設定等實用技能。

快速了解內容

環境準備與基礎認知

Linux 系統架構理解

Linux 系統採用階層式檔案結構,初學者需要了解重要目錄的功能1

  • /root:系統管理員的家目錄
  • /home:一般使用者家目錄的上層2
  • /etc:設定檔案存放位置2
  • /var:變動資料,如資料庫、網頁檔案、快取、記錄檔1
  • /usr:應用程式安裝目錄,含指令、程式、函式庫1
  • /tmp:暫存目錄,系統會定期清除2

基本指令熟悉

在開始系統管理之前,需要掌握 12 個基本 Linux 指令3

# 基本檔案操作
pwd       # 顯示目前工作路徑
ls -la    # 列出檔案詳細資訊
mkdir     # 建立目錄
touch     # 建立空檔案
cp        # 複製檔案
mv        # 移動或重新命名檔案
rm        # 刪除檔案(請謹慎使用)

# 權限與系統管理
chmod     # 變更檔案權限
sudo      # 提升執行權限
man       # 查詢指令說明手冊

MySQL 資料庫管理入門

MySQL 資料庫備份與還原

資料庫的匯出匯入是系統管理員必須掌握的基本技能。以下是完整的操作步驟:

資料庫匯出(備份)

# 匯出單一資料庫
mysqldump -u [使用者名稱] -p [資料庫名稱] > backup.sql

# 實例:匯出名為 mywebsite 的資料庫
mysqldump -u root -p mywebsite > mywebsite_backup.sql

# 匯出特定資料表
mysqldump -u root -p mywebsite users products > selected_tables.sql

# 匯出多個資料庫
mysqldump -u root -p --databases db1 db2 db3 > multiple_db_backup.sql

# 匯出所有資料庫
mysqldump -u root -p --all-databases > all_databases_backup.sql

資料庫匯入(還原)

# 匯入資料庫
mysql -u [使用者名稱] -p [資料庫名稱] < backup.sql

# 實例:還原 mywebsite 資料庫
mysql -u root -p mywebsite < mywebsite_backup.sql

# 如果需要先建立資料庫
mysql -u root -p -e "CREATE DATABASE mywebsite;"
mysql -u root -p mywebsite < mywebsite_backup.sql

MySQL 效能監控基礎

使用內建工具監控

sql-- 查看當前運行的查詢
SHOW PROCESSLIST;

-- 查看資料庫狀態
SHOW STATUS;

-- 檢查慢查詢設定
SHOW VARIABLES LIKE 'slow_query_log%';
SHOW VARIABLES LIKE 'long_query_time';

-- 啟用慢查詢日誌(需要適當權限)
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;

效能分析技巧

sql-- 使用 EXPLAIN 分析查詢效能
EXPLAIN SELECT * FROM users WHERE email = '[email protected]';

-- 查看記憶體使用情況(MySQL 8.0+)
SELECT * FROM sys.memory_global_total;

-- 檢視 InnoDB 緩衝池狀態
SELECT * FROM sys.memory_global_by_current_bytes
WHERE event_name LIKE 'memory/innodb/buf_buf_pool%'\G

自動化備份腳本

建立一個簡單的備份腳本:

#!/bin/bash
# MySQL 自動備份腳本

# 設定變數
DB_USER="root"
DB_PASS="your_password"
DB_NAME="mywebsite"
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%Y%m%d_%H%M%S)

# 建立備份目錄
mkdir -p $BACKUP_DIR

# 執行備份
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/${DB_NAME}_${DATE}.sql

# 壓縮備份檔案
gzip $BACKUP_DIR/${DB_NAME}_${DATE}.sql

# 刪除 7 天前的備份
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

echo "資料庫備份完成:${DB_NAME}_${DATE}.sql.gz"

htop 系統效能監控設定

htop 安裝與基本使用

htop 是比傳統 top 指令更強大的系統監控工具,提供彩色顯示和互動式操作4

在不同系統安裝 htop

# Ubuntu/Debian 系統
sudo apt-get update
sudo apt-get install htop

# CentOS/RHEL 系統
sudo yum install epel-release
sudo yum update
sudo yum install htop

# 或在較新版本使用 dnf
sudo dnf install htop

htop 基本操作

啟動 htop:

bashhtop

htop 介面解讀

htop 的顯示介面分為三個主要區域5

系統狀態區域(上方)

  • CPU 使用率:每個 CPU 核心的使用率,以彩色條狀圖顯示
  • 記憶體使用率:顯示實體記憶體(MEM)和虛擬記憶體(Swp)使用情況
  • Tasks:顯示目前系統中的程序數量
  • Load average:系統在 1 分鐘、5 分鐘、15 分鐘的平均負載
  • Uptime:系統運行時間

程序列表區域(中間)

各欄位意義說明5

  • PID:程序 ID
  • USER:執行程序的使用者
  • PRI:Linux 核心排程優先順序(0-139)
  • NI:Niceness 值(-20 到 19)
  • VIRT:虛擬記憶體使用量
  • RES:常駐記憶體使用量
  • SHR:共享記憶體使用量
  • S:程序狀態(R=執行中,S=睡眠,Z=殭屍程序)
  • CPU%:CPU 使用率
  • MEM%:記憶體使用率
  • TIME+:程序執行時間
  • Command:執行的指令

htop 進階功能設定

常用熱鍵操作

F1    = 說明畫面
F2 = 設定選單
F3/ = 搜尋程序
F4/\ = 過濾程序
F5 = 樹狀顯示程序關係
F6/<> = 排序選項
F7/] = 增加 nice 值(降低優先權)
F8/[ = 減少 nice 值(提高優先權)
F9 = 終止程序
F10 = 離開 htop

自訂 htop 顯示設定

按 F2 進入設定選單,可調整:

  1. 顯示欄位:選擇要顯示的資訊欄位
  2. 色彩設定:調整介面配色方案
  3. 計量器設定:調整 CPU 和記憶體顯示方式

htop 設定檔管理

htop 的設定會自動儲存在 $HOME/.config/htop/htoprc 檔案中4。如果設定出現問題,可以刪除此檔案重置:

rm ~/.config/htop/htoprc

檔案上傳下載方法

SCP 檔案傳輸

SCP(Secure Copy Protocol)是基於 SSH 的安全檔案傳輸工具6

SCP 基本語法

# 基本語法
scp [選項] 來源檔案 目標位置

# 常用參數
-r # 遞迴複製目錄
-p # 保留檔案時間與權限
-P # 指定 SSH 連接埠
-C # 啟用壓縮傳輸
-v # 顯示詳細過程
-l # 限制傳輸速度(以 kbit/s 為單位)

實際操作範例

# 上傳本地檔案到遠端伺服器
scp /home/user/file.txt [email protected]:/home/user/

# 下載遠端檔案到本地
scp [email protected]:/home/user/file.txt /home/user/downloads/

# 上傳整個目錄
scp -r /home/user/documents/ [email protected]:/home/user/

# 使用自訂埠號
scp -P 2222 file.txt [email protected]:/home/user/

# 保留檔案權限和時間戳
scp -p file.txt [email protected]:/home/user/

# 壓縮傳輸大檔案
scp -C large_file.zip [email protected]:/home/user/

# 限制傳輸速度(512 kbit/s = 64 KB/s)
scp -l 512 large_file.zip [email protected]:/home/user/

Rsync 同步工具

Rsync 比 SCP 更適合大檔案或需要同步的情況7

Rsync 基本用法

# 基本語法
rsync [選項] 來源 目標

# 常用參數
-a # 封裝模式,等同於 -rlptgoD
-v # 詳細輸出
-z # 啟用壓縮
-h # 人類可讀格式
-P # 顯示進度並允許斷點續傳
--delete # 刪除目標中多餘的檔案

Rsync 實用範例

bash# 本地同步
rsync -avh /source/directory/ /destination/directory/

# 遠端同步
rsync -avzh /local/path/ user@remote:/remote/path/

# 斷點續傳大檔案
rsync -P large_file.zip user@remote:/home/user/

# 同步時排除特定檔案
rsync -avh --exclude='*.log' /source/ user@remote:/destination/

# 使用 SSH 金鑰認證
rsync -avzh -e "ssh -i ~/.ssh/id_rsa" /local/path/ user@remote:/remote/path/

SSH 金鑰設定(免密碼登入)

產生 SSH 金鑰對

# 產生 RSA 金鑰對
ssh-keygen -t rsa -b 4096 -C "[email protected]"

# 預設會在 ~/.ssh/ 產生
# id_rsa (私鑰) 和 id_rsa.pub (公鑰)

複製公鑰到遠端伺服器

# 使用 ssh-copy-id(推薦)
ssh-copy-id [email protected]

# 或手動複製
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

設定適當權限

bash# 在遠端伺服器上設定權限
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

防火牆設定(UFW)

UFW(Uncomplicated Firewall)是 Ubuntu 系統預設的防火牆管理工具,簡化了複雜的 iptables 設定8

UFW 基本操作

啟用與停用防火牆

# 檢查防火牆狀態
sudo ufw status
sudo ufw status verbose

# 啟用防火牆(重要:先設定 SSH 規則)
sudo ufw allow 22
sudo ufw enable

# 停用防火牆
sudo ufw disable

預設規則設定

# 預設拒絕所有連入連線
sudo ufw default deny incoming

# 預設允許所有連出連線
sudo ufw default allow outgoing

UFW 規則管理

允許與拒絕連線

# 允許特定埠號
sudo ufw allow 80 # HTTP
sudo ufw allow 443 # HTTPS
sudo ufw allow 3306 # MySQL
sudo ufw allow 22 # SSH

# 指定協定
sudo ufw allow 80/tcp
sudo ufw allow 53/udp

# 允許特定 IP
sudo ufw allow from 192.168.1.100

# 允許特定 IP 存取特定埠號
sudo ufw allow from 192.168.1.100 to any port 3306

# 允許子網路
sudo ufw allow from 192.168.1.0/24

# 拒絕連線
sudo ufw deny 23 # 拒絕 Telnet
sudo ufw deny from 192.168.1.50

複雜規則範例

# 只允許特定 IP 透過 SSH 連線
sudo ufw delete allow 22
sudo ufw allow from 192.168.1.0/24 to any port 22

# 允許網頁服務但限制來源
sudo ufw allow from 192.168.1.0/24 to any port 80
sudo ufw allow from 192.168.1.0/24 to any port 443

# 允許 FTP 服務
sudo ufw allow 20,21/tcp
sudo ufw allow 1000:2000/tcp # FTP 被動模式範圍

UFW 規則管理

查看和刪除規則

# 查看規則編號
sudo ufw status numbered

# 刪除特定規則
sudo ufw delete 2

# 重置所有規則
sudo ufw --force reset

UFW 進階設定

編輯 /etc/ufw/before.rules 可進行更進階的設定,例如禁用 ping 回應9

# 編輯檔案
sudo nano /etc/ufw/before.rules

# 找到 ICMP 規則並註解掉
# -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

文字編輯器使用

Nano 編輯器(推薦初學者)

Nano 是最適合初學者的文字編輯器,操作直觀且容易上手10

Nano 基本操作

# 開啟檔案
nano filename.txt

# 如果檔案不存在會自動建立
nano /etc/hosts

Nano 常用快捷鍵

Ctrl+G    # 顯示說明
Ctrl+O # 儲存檔案
Ctrl+X # 離開編輯器
Ctrl+R # 讀取其他檔案內容
Ctrl+W # 搜尋文字
Ctrl+K # 剪下整行
Ctrl+U # 貼上
Ctrl+6 # 開始選取
Ctrl+C # 顯示游標位置
Alt+U # 復原操作
Alt+E # 重做操作

Vim 編輯器(進階用戶)

Vim 是功能強大的程式編輯器,但學習曲線較陡峭11

Vim 基本模式

Vim 有三種主要模式11

  1. 一般模式:預設模式,用於瀏覽和修改
  2. 插入模式:按 i, I, o, O, a, A 進入,用於輸入文字
  3. 命令模式:按 : 進入,用於儲存、離開等操作

Vim 基本操作

# 開啟檔案
vim filename.txt

# 在一般模式下的操作
i # 進入插入模式
:w # 儲存檔案
:q # 離開
:wq # 儲存並離開
:q! # 強制離開不儲存
dd # 刪除整行
yy # 複製整行
p # 貼上
/搜尋字串 # 向下搜尋
?搜尋字串 # 向上搜尋

定時任務設定(Crontab)

Crontab 是 Linux 系統中用於設定定時執行任務的工具12

Crontab 時間格式

# 時間格式:分鐘 小時 日期 月份 星期幾 指令
* * * * * command

# 欄位說明
# 分鐘 (0-59)
# 小時 (0-23)
# 日期 (1-31)
# 月份 (1-12)
# 星期幾 (0-7,0和7都代表星期日)

Crontab 基本操作

# 檢視目前使用者的 crontab
crontab -l

# 編輯 crontab
crontab -e

# 刪除所有 crontab 設定
crontab -r

# 管理其他使用者的 crontab(需要 root 權限)
sudo crontab -u username -e

實用 Crontab 範例

# 每分鐘執行一次
* * * * * /path/to/script.sh

# 每小時執行一次(每小時的第0分鐘)
0 * * * * /path/to/script.sh

# 每天凌晨 3 點執行
0 3 * * * /path/to/backup.sh

# 每週一中午 12:30 執行
30 12 * * 1 /path/to/weekly_task.sh

# 每月第一天凌晨 1 點執行
0 1 1 * * /path/to/monthly_task.sh

# 每 5 分鐘執行一次
*/5 * * * * /path/to/frequent_task.sh

# 工作日(週一到週五)早上 9 點執行
0 9 * * 1-5 /path/to/workday_task.sh

# 每季度執行(每年的 1、4、7、10 月第一天)
0 0 1 1,4,7,10 * /path/to/quarterly_task.sh

實際應用範例

自動備份腳本

# 每天凌晨 2 點自動備份資料庫
0 2 * * * mysqldump -u root -p'password' mydb > /backup/mydb_$(date +\%Y\%m\%d).sql

# 每週日凌晨 3 點清理舊備份檔案
0 3 * * 0 find /backup -name "*.sql" -mtime +30 -delete

系統維護任務

bash# 每小時清理暫存檔案
0 * * * * find /tmp -type f -mtime +1 -delete

# 每天凌晨 4 點更新系統套件清單
0 4 * * * apt-get update > /dev/null 2>&1

# 每月第一天重啟服務
0 3 1 * * systemctl restart apache2

Crontab 除錯技巧

檢查 Cron 服務狀態

# 檢查 cron 服務是否運行
sudo systemctl status cron

# 啟動 cron 服務
sudo systemctl start cron

# 檢視 cron 日誌
sudo tail -f /var/log/cron.log

常見問題解決

  1. 環境變數問題:在 crontab 中使用完整路徑 bash# 錯誤 0 2 * * * python3 script.py # 正確 0 2 * * * /usr/bin/python3 /full/path/to/script.py
  2. 權限問題:確保腳本有執行權限 bashchmod +x /path/to/script.sh
  3. 輸出重定向:避免郵件通知堆積 bash0 2 * * * /path/to/script.sh > /dev/null 2>&1

進階系統監控技巧

使用 Top 指令監控程序

# 基本 top 指令
top

# top 常用熱鍵
t # 切換 CPU 資訊顯示
m # 切換記憶體資訊顯示
P # 依 CPU 使用率排序
M # 依記憶體使用率排序
k # 終止程序
q # 離開 top

系統資源監控指令

# 檢視記憶體使用狀況
free -h

# 檢視磁碟使用狀況
df -h

# 檢視目錄大小
du -sh /path/to/directory

# 檢視系統負載
uptime

# 檢視登入使用者
w

# 檢視網路連線
netstat -tlnp
ss -tlnp

日誌檔案管理

系統日誌位置

# 主要系統日誌
/var/log/syslog # 系統日誌
/var/log/auth.log # 認證日誌
/var/log/kern.log # 核心日誌
/var/log/cron.log # Cron 任務日誌
/var/log/apache2/ # Apache 日誌
/var/log/mysql/ # MySQL 日誌

日誌檔案查看技巧

# 查看日誌末尾內容
tail -f /var/log/syslog

# 查看特定行數
tail -n 50 /var/log/auth.log

# 搜尋日誌內容
grep "error" /var/log/syslog
grep -i "failed" /var/log/auth.log

# 依時間篩選日誌
journalctl --since "2024-01-01" --until "2024-01-02"

Letwebs.com 專業系統管理服務

全方位系統管理支援

Letwebs.com 作為專業的技術服務提供商,為系統管理員提供完整的支援服務:

技術諮詢與培訓

  • Linux 系統管理專業培訓
  • MySQL 資料庫效能優化諮詢
  • 系統監控方案設計
  • 自動化運維腳本開發

系統安全防護

  • 進階防火牆設定與管理
  • DDoS 攻擊防護配置
  • 入侵偵測系統部署
  • 安全漏洞評估與修補

資料備份與復原

  • 自動化備份策略設計
  • 災難復原計畫制定
  • 資料同步解決方案
  • 高可用性架構部署

專業服務特色

24/7 技術支援

  • 即時系統監控與告警
  • 緊急故障排除服務
  • 效能優化建議
  • 定期系統健檢報告

自動化運維工具

  • 客製化監控 Dashboard
  • 自動化部署腳本
  • 系統效能報告生成
  • 容量規劃與擴展建議

成功案例分享

Letwebs.com 已協助眾多企業建立穩定可靠的系統環境:

  • 平均系統可用性達到 99.9% 以上
  • 故障回復時間縮短 80%
  • 自動化程度提升 90%
  • 運維成本降低 60%

持續技術支援

選擇 Letwebs.com 的客戶可享有:

  • 專業團隊一對一技術諮詢
  • 定期系統優化建議
  • 最新技術趨勢分享
  • 彈性服務方案設計

結語:建立專業系統管理技能

透過本指南的學習,初學者已經掌握了 Linux 系統管理的核心技能,包括 MySQL 資料庫管理、系統效能監控、檔案傳輸、防火牆設定等重要領域。這些技能是成為專業系統管理員的基石。

持續學習的重要性

系統管理是一個需要持續學習和實踐的領域。建議初學者:

  1. 定期練習:在虛擬環境中反覆練習各種操作
  2. 建立實驗室:設置測試環境進行新技術驗證
  3. 關注社群:參與 Linux 社群討論和經驗分享
  4. 記錄經驗:建立自己的技術筆記和故障排除手冊

專業成長建議

  • 從基礎扎實做起,逐步深入學習進階技術
  • 培養自動化思維,善用腳本提升工作效率
  • 重視系統安全,建立完善的防護機制
  • 培養問題分析能力,快速定位並解決故障

Letwebs.com 陪伴您的技術成長之路

無論您是剛入門的系統管理員,還是希望提升技能的資深從業者,Letwebs.com 都能提供專業的技術支援和諮詢服務。我們致力於協助您建立穩定、安全、高效的系統環境,讓技術成為推動業務發展的強大動力。

選擇 Letwebs.com,選擇專業可靠的技術夥伴,讓我們一起在系統管理的專業道路上持續精進,共創技術服務的卓越價值!