Linux 維運神技:用 grep 同 journalctl 十秒搵出問題根源

做 IT 維運嘅朋友,應該日日都遇到同一個煩惱:部機突然變慢、Disk 用到爆、某個 service 死咗,跟住你就要 SSH 入去慢慢查。今日想同大家分享一個好實用嘅技巧 —— 用 `grep` 同 `journalctl` 呢兩個 Linux 神器,十秒之內揾出問題根源,唔使再喺幾千行 log 入面大海撈針。 ## 點解你要學識 grep 睇 log 做 IT 維運,最怕就係 log 一堆、但...

做 IT 維運嘅朋友,應該日日都遇到同一個煩惱:部機突然變慢、Disk 用到爆、某個 service 死咗,跟住你就要 SSH 入去慢慢查。今日想同大家分享一個好實用嘅技巧 —— 用 `grep` 同 `journalctl` 呢兩個 Linux 神器,十秒之內揾出問題根源,唔使再喺幾千行 log 入面大海撈針。

## 點解你要學識 grep 睇 log

做 IT 維運,最怕就係 log 一堆、但唔知由邊度開始睇。`grep` 係 Linux 最強嘅文字過濾工具,識得用佢,你就可以喺海量 log 入面即刻鎖定關鍵字。例如你想揾所有關於「error」嘅記錄,一條指令搞掂:

grep -i "error" /var/log/syslog

個 `-i` 參數代表唔分大小寫,咁就唔怕漏咗「Error」或者「ERROR」呢啲寫法。想再精準啲,可以加多幾個關鍵字,用 `-E` 開啟 extended regex:

grep -iE "error|fail|critical" /var/log/syslog

咁就一次過揾曬所有 error、fail、critical 嘅相關記錄,成個畫面即刻清楚曬。

## journalctl 先係 systemd 世代嘅主角

而家大部分 Linux 發行版都用 systemd,所有 service 嘅 log 都集中喺 journal 入面,直接用 `journalctl` 睇就得,唔使逐個 file 去揾。最常用嘅幾個指令:

# 睇即時 log(似 tail -f)
journalctl -f

# 只睇某個 service 嘅 log
journalctl -u nginx.service

# 只睇今日嘅 log
journalctl --since today

# 睇最近 50 行
journalctl -n 50

其中 `-u` 係最常用,你只要知道自己想查邊個 service,例如 `nginx`、`sshd`、`docker`,就可以即刻將範圍縮細。

## grep 同 journalctl 合體:十秒揾出死因

真正嘅高手,係將兩者結合。例如你懷疑部機嘅 SSH 服務有問題,想揾出所有「failed」同「refused」嘅記錄,可以咁做:

journalctl -u sshd.service | grep -iE "failed|refused|error"

又或者你想睇某個特定 IP 嘅所有連線記錄:

journalctl -u sshd.service | grep "192.168.1.100"

呢種「pipe」嘅用法,係 Linux 最強大嘅地方 —— 將一個指令嘅輸出,直接餵俾下一個指令做輸入,層層過濾,最後剩低嘅就係你想要嘅嘢。

## 進階技巧:加上時間範圍同輸出控制

當 log 太多,想鎖定某段時間,可以用 `–since` 同 `–until`:

journalctl -u nginx.service --since "2026-09-14 10:00:00" --until "2026-09-14 11:00:00" | grep -i "error"

想睇得舒服啲,仲可以加 `–no-pager` 直接一次過輸出曬,或者 `-o short-iso` 令時間格式更清晰:

journalctl -u nginx.service -o short-iso --no-pager | grep -i "500"

學識呢幾招,下次部機出事,你就唔使再手忙腳亂。記住一句口訣:**先縮範圍,再揾關鍵字**。用 `-u` 縮到單一 service,再用 `grep` 揾關鍵字,最後加時間範圍,三層過濾落去,十秒之內一定揾到問題根源。

🔗 參考資料:NVD NIST 漏洞資料庫

IT 維運其實唔使每次都靠 GUI 工具,command line 先係最靈活、最快嘅武器。大家不妨即刻開個 terminal 試下,感受下 grep 加 journalctl 嘅威力。

#IT教學 #技術分享 #SSH #ssh #Linux

Linux 維運神技:用 grep 同 journalctl 十秒搵出問題根源 - 文章重點速覽 infographic