做 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




