Linux系統日志管理入門:journalctl命令完全指南

Linux系統日志管理入門:journalctl命令完全指南

  • 前言
  • 一、journalctl介紹
  • 二、基礎使用:快速上手
    • 1. 查看全部日志
    • 2. 查看本次啟動的日志
    • 3. 按時間篩選日志
    • 4. 按服務(單元)過濾日志
  • 三、常用參數與場景
  • 四、實戰案例:解決實際問題
    • 案例1:排查服務啟動失敗
    • 案例2:查找系統崩潰原因
    • 案例3:監控實時錯誤
  • 五、高級技巧
    • 1. 按進程ID(PID)過濾
    • 2. 組合查詢
    • 3. 導出日志到文件
  • 六、常見問題與解決
    • 問題1:權限不足,無法查看日志
    • 問題2:日志文件過大占用磁盤
    • 問題3:無法找到某個服務的日志
  • 七、總結

前言


journalctl是Linux系統中用于查看和管理日志的核心工具,尤其在基于systemd的系統(如Ubuntu、CentOS、Fedora等)中,它是分析系統和服務日志的“瑞士軍刀”。對于新手而言,掌握journalctl能快速定位系統故障、服務崩潰或性能問題。本文將用通俗易懂的語言,從基礎到實踐,帶你快速上手journalctl


一、journalctl介紹

journalctlsystemd日志系統(稱為journald)的日志查看工具。它統一管理系統的所有日志,包括:

  • 內核日志:硬件驅動、設備連接等。
  • 服務日志:Apache、MySQL、Docker等服務的運行狀態。
  • 用戶程序日志:通過systemd管理的用戶級程序。

與傳統的日志文件(如/var/log/syslog)不同,journalctl支持結構化查詢多維度過濾,讓日志分析更高效。


二、基礎使用:快速上手

1. 查看全部日志

輸入以下命令,顯示系統所有日志(按時間倒序排列):

journalctl
  • ↓/↑ 鍵滾動瀏覽,按 q 退出。
  • 日志默認分頁顯示(類似less),支持搜索(輸入/后輸入關鍵詞)。

在這里插入圖片描述

2. 查看本次啟動的日志

  • 僅顯示當前系統啟動后的日志:
journalctl -b

在這里插入圖片描述

3. 按時間篩選日志

  • 查看最近1小時的日志
 journalctl --since "1 hour ago"

在這里插入圖片描述

  • 指定時間范圍(格式為YYYY-MM-DD HH:MM:SS):
journalctl --since "2025-04-29 09:00:00" --until "2025-04-29 10:00:00"

在這里插入圖片描述

4. 按服務(單元)過濾日志

  • 查看某個服務的日志(如nginx):
journalctl -u nginx.service

在這里插入圖片描述

三、常用參數與場景

參數作用示例
-f實時跟蹤日志(類似tail -fjournalctl -f -u docker.service
-k僅顯示內核日志journalctl -k
-p <優先級>按日志優先級過濾(如emerg, alert, crit, err, warning, infojournalctl -p err
--no-pager直接輸出日志(不分頁)journalctl --no-pager
-o json以JSON格式輸出日志(適合編程處理)journalctl -o json
--disk-usage查看日志占用的磁盤空間journalctl --disk-usage

四、實戰案例:解決實際問題

案例1:排查服務啟動失敗

假設nginx服務啟動失敗,查看其詳細日志:

journalctl -u nginx.service --since "10 minutes ago"
  • 如果日志顯示Address already in use,說明端口被占用。

案例2:查找系統崩潰原因

系統突然死機,重啟后查看上次啟動的日志:

journalctl -b -1  # -b -1表示上一次啟動

案例3:監控實時錯誤

實時跟蹤所有錯誤級別(error及以上)的日志:

journalctl -p err -f

五、高級技巧

1. 按進程ID(PID)過濾

  • 查看某個進程的日志(需知道進程的PID):
root@jeven01:~# journalctl _PID=585853
Apr 29 06:51:09 jeven01 sshd[585853]: Accepted password for root from 192.168.3.101 port 64052 ssh2
Apr 29 06:51:09 jeven01 sshd[585853]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)

2. 組合查詢

  • 同時按服務和優先級過濾:
journalctl -u mysql.service -p err

3. 導出日志到文件

將日志保存為文本文件(方便分享或進一步分析):

journalctl --since "2025-04-01" > ~/mylog.txt
  • 查看保存的日記文件:
root@jeven01:~# cat mylog.txt | head -n 10
Apr 10 09:32:04 jeven01 systemd-resolved[683]: Clock change detected. Flushing caches.
Apr 10 09:32:04 jeven01 systemd[1]: Starting Daily apt download activities...
Apr 10 09:32:04 jeven01 systemd[1]: Starting Daily dpkg database backup service...
Apr 10 09:32:04 jeven01 systemd[1]: Starting Online ext4 Metadata Check for All Filesystems...
Apr 10 09:32:04 jeven01 systemd[1]: Starting Discard unused blocks on filesystems from /etc/fstab...
Apr 10 09:32:04 jeven01 systemd[1]: Starting Refresh fwupd metadata and update motd...
Apr 10 09:32:04 jeven01 systemd[1]: Starting Message of the Day...
Apr 10 09:32:04 jeven01 systemd[1]: Starting Rotate log files...
Apr 10 09:32:04 jeven01 systemd[1]: Starting Daily man-db regeneration...
Apr 10 09:32:04 jeven01 systemd[1]: dpkg-db-backup.service: Deactivated successfully.

六、常見問題與解決

問題1:權限不足,無法查看日志

  • 現象:運行journalctl提示“No permissions”或“Access denied”。
  • 解決:使用sudo提權或將自己加入systemd-journal用戶組:
    sudo usermod -aG systemd-journal $USER
    # 注銷后重新登錄生效
    

問題2:日志文件過大占用磁盤

  • 查看日志占用空間
journalctl --disk-usage

在這里插入圖片描述

  • 清理舊日志(保留最近500MB):
 journalctl --vacuum-size=500M

問題3:無法找到某個服務的日志

  • 可能原因:服務未通過systemd管理(如直接運行的腳本)。
  • 替代方案:查看服務的自定義日志文件(如/var/log/myapp.log)。

七、總結

  • journalctl 是一款強大的日志管理工具,適用于使用 systemd 的 Linux 系統,提供了靈活的日志查詢和管理功能。
  • 使用 journalctl 時,務必注意查看的日志是否與當前系統引導有關,以避免獲取無關的信息。
  • 對于特定服務的日志查詢,確保服務名稱準確無誤,可以提高檢索效率。
  • 按時間篩選日志時,應使用精確的時間格式,以獲得最相關的日志條目。
  • 在處理大量日志信息時,合理利用過濾條件和組合查詢可以顯著提高工作效率。
  • 導出日志前,請確認目標文件有足夠的存儲空間,并且導出操作不會影響系統的正常運行。
  • 當遇到權限問題時,檢查用戶權限或嘗試使用超級用戶權限執行命令。
  • 定期監控并清理過大的日志文件,防止磁盤空間被無用日志占用,保持系統健康運行。
  • 遇到無法找到某個服務日志的情況時,首先檢查服務是否正確安裝并處于活動狀態。
  • 實踐中結合具體案例學習,能夠更有效地掌握 journalctl 的高級技巧和應用場景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89756.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89756.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89756.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

神經網絡的基本骨架——nn.Module的使用(torch.nn庫)

在 PyTorch 中&#xff0c;nn.Module 是所有神經網絡模塊的基類&#xff0c;用于構建和組織深度學習模型。它提供了一系列工具和功能&#xff0c;使模型的定義、訓練和部署更加高效和靈活。nn Neural Network&#xff08;神經網絡&#xff09;核心作用&#xff1a;模塊化設計&…

靜態住宅IP和節點有什么區別?哪種更適合你的需求?

在跨境電商、社媒運營等業務中&#xff0c;“靜態住宅IP”和“節點”常被混淆使用&#xff0c;但兩者代表網絡架構中不同層級的資源。選錯可能導致賬號風控、業務效率低下。IPdodo將在本篇文章中&#xff0c;從本質、業務場景到選擇策略&#xff0c;為您一文道清兩者之間的區別…

AI編程工具對比:Cursor、GitHub Copilot與Claude Code

文章目錄AI編程工具對比&#xff1a;Cursor、GitHub Copilot與Claude Code一、產品定位與核心架構1.1 Cursor&#xff1a;AI原生IDE的代表1.2 GitHub Copilot&#xff1a;代碼補全的行業標桿1.3 Claude Code&#xff1a;終端Agent的革新者二、核心功能深度對比2.1 代碼生成與理…

車載傳統ECU---MCU軟件架構設計指南

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

SCSAI工業智能體的核心特征

一個覆蓋工業全場景、由多個垂直領域智能體構成的開放生態平臺。每個智能體都是具備獨立能力的 “數字單元”&#xff0c;同時又能通過平臺實現互聯、協作與進化。一、工業智能體平臺的核心定位本質&#xff1a;工業領域的 “智能體操作系統 應用市場”&#xff0c;為各類工業…

Java大視界:Java大數據在智能醫療電子健康檔案數據挖掘與健康服務創新>

> 本文通過完整代碼示例,揭秘如何用Java大數據技術挖掘電子健康檔案價值,實現疾病預測、個性化健康管理等創新服務。 ### 一、智能醫療時代的數據金礦 電子健康檔案(EHR)作為醫療數字化的核心載體,包含海量患者全生命周期健康數據。據統計,全球醫療數據量正以每年…

家庭KTV v1.1.9 | 曲庫豐富,無限制免費K歌

家庭KTV是一款專門為家庭娛樂設計的K歌軟件&#xff0c;旨在讓用戶在家中也能享受到與KTV相同的高質量K歌體驗。該應用擁有豐富的歌曲庫&#xff0c;包括經典老歌和當下流行熱曲等多種類型&#xff0c;滿足不同年齡段用戶的需求。家庭KTV支持多種點歌方式&#xff0c;如按照歌手…

vscode 一直連不上遠程,網絡是通的,ssh 也能直接登錄遠程

vscode 一直連不上遠程&#xff0c;網絡是通的&#xff0c;ssh 也能直接登錄遠程&#xff0c;但vscode 死活連不上 解決辦法&#xff1a; 取消勾選remote.SSH.useExecServer 打開 VS Code 設置&#xff08;Ctrl, → 搜索 useExecServer&#xff09; 取消對應的勾選即可

前端面試專欄-工程化:28.團隊協作與版本控制(Git)

&#x1f525; 歡迎來到前端面試通關指南專欄&#xff01;從js精講到框架到實戰&#xff0c;漸進系統化學習&#xff0c;堅持解鎖新技能&#xff0c;祝你輕松拿下心儀offer。 前端面試通關指南專欄主頁 前端面試專欄規劃詳情 項目實戰與工程化模塊-團隊協作與版本控制&#xff…

無標記點動捕:如何突破傳統娛樂邊界,打造沉浸式交互體驗

你能想象在游戲交互中&#xff0c;你的動作和表情可以不用佩戴任何設備就實時映射在虛擬角色上嗎&#xff1f;在傳統娛樂中&#xff0c;用戶體驗常被設備束縛——手柄、傳感器、標記點讓用戶無法徹底投入。而無標記點動捕技術作為一種將用戶肢體轉化為虛擬世界的“自然控制器”…

C#監聽txt文檔獲取新數據

目錄前言一、監聽txt文檔增加數據二、其他功能1. 設置開機自啟動2. 禁止控制臺窗口關閉按鈕3. 阻止Ctrl C中斷4. 防止程序退出&#xff08;無限循環&#xff09;總結前言 之前有個需求就是監聽文件夾中最新的txt文檔獲取最新數據&#xff0c;還有其他功能&#xff0c;比如&am…

程序員管理與AIStarter開發:如何避免需求Bug,提升項目效率

大家好&#xff0c;我是熊哥&#xff01;今天聊聊程序員管理和AIStarter開發中的經驗教訓。創業公司項目常因需求不清出Bug&#xff0c;比如“管理員刪管理員”這種低級錯誤&#xff0c;引發用戶不滿。熊哥親測&#xff1a;程序員管理關鍵在于明確需求&#xff01;通過整理需求…

網絡爬蟲概念初解

大家好! 網絡爬蟲&#xff08;Web Crawler&#xff09;是一種自動化程序&#xff0c;能夠模擬人類瀏覽行為&#xff0c;按照預設規則從互聯網上抓取、解析和存儲數據。它像一只“數字蜘蛛”&#xff0c;沿著網頁鏈接爬行&#xff0c;高效采集目標信息。以下是核心要點&#xff…

Pytorch 使用報錯 RuntimeError: Caught RuntimeError in DataLoader worker process 0.

這個錯誤是可能是由于在DataLoader的工作進程中嘗試訪問CUDA設備導致的。PyTorch的DataLoader使用多進程加載數據&#xff0c;而CUDA上下文不能在子進程中直接使用。修改前的代碼為&#xff1a;def prepare_data(file_path):# 讀取Excel文件df pd.read_excel(file_path, heade…

產品經理如何描述用戶故事

作為資深產品經理&#xff0c;描述用戶故事需超越基礎模板&#xff0c;將其轉化為驅動產品決策的戰略工具。以下是融合實戰經驗的深度方法論&#xff0c;附高階技巧和反例分析&#xff1a;一、用戶故事的本質&#xff1a;需求的三維錨點 #mermaid-svg-AgAM5YJT6aKoD1EV {font-f…

Vue 結合 Zabbix API 獲取服務器 CPU、內存、GPU 等數據

一、簡介 Vue 結合 Zabbix API 可以實現對服務器 CPU、內存、GPU 等監控數據的動態獲取與展示。Zabbix 是一款開源的監控工具&#xff0c;提供豐富的 API 接口供開發者調用。通過 Vue 前端框架&#xff0c;可以將 Zabbix 返回的數據以圖表或表格形式直觀呈現&#xff0c;便于運…

深度學習Depth Anything V2神經網絡實現單目深度估計系統源碼

第一步&#xff1a; Depth Anything V2介紹 本文介紹了 Depth Anything V2。在不追求復雜技術的前提下&#xff0c;我們旨在揭示一些關鍵發現&#xff0c;為構建強大的單目深度估計模型鋪平道路。與 V1 [89] 相比&#xff0c;本版本通過三項關鍵實踐產生了更精細且更魯棒的深度…

新手向:基于 Python 的簡易視頻剪輯工具

在數字媒體時代&#xff0c;視頻創作已成為大眾表達的重要形式&#xff0c;從個人vlog制作到企業宣傳視頻&#xff0c;視頻內容的需求呈現爆發式增長。傳統專業軟件如Adobe Premiere Pro雖功能強大&#xff0c;提供完整的非線性編輯系統&#xff0c;但存在學習曲線陡峭&#xf…

如何在PyCharm中刪除虛擬環境

1、進入Python Interpreters具體方法&#xff1a;Settings-->Project:自己命名的項目-->Python Interpreters-Python Interpreter下拉欄-->show all&#xff0c;具體步驟見下圖。2、 選擇需要刪除的python環境&#xff0c;具體下圖所示。選擇需要刪除的環境-->點擊…

QML 動畫效果詳解

屬性動畫(PropertyAnimation)PropertyAnimation是QML中最基礎、最常用的動畫類型&#xff0c;它可以對任何基于數字或顏色的屬性進行動畫化處理&#xff0c;實現平滑的過渡效果。核心屬性與用法PropertyAnimation的主要屬性如下表所示&#xff1a;屬性類型描述默認值targetQtOb…