journalctl 查看日志方法


 

一、概述

       日志管理工具 journalctl 是CentOS7上專有的日志管理工具,該工具是從message這個文件里讀取信息。Systemd統一管理所有Unit的啟動日志。帶來的好處就是,可以只用journalctl一個命令,查看所有日志(內核日志和應用日志)。日志的配置文件是/etc/systemd/journald.conf

       journalctl功能強大,用法非常多。本文將介紹journalctl的相關使用方法。

 

二、journalctl 的使用方法

查看所有日志

       默認情況下,只保存本次啟動的日志

journalctl

查看內核日志(不顯示應用日志)

journalctl -k

查看系統本次啟動的日志

journalctl -b
journalctl -b -0

查看上一次啟動的日志

      需更改設置,如上次系統崩潰,需要查看日志時,就要看上一次的啟動日志。

journalctl -b -1

查看指定時間的日志

journalctl --since="2012-10-3018:17:16"

journalctl --since "20 minago"

journalctl --since yesterday

journalctl --since"2015-01-10" --until "2015-01-11 03:00"

journalctl --since 09:00 --until"1 hour ago"

journalctl --since"15:15" --until now

顯示尾部的最新10行日志

journalctl -n

顯示尾部指定行數的日志

       查看的是/var/log/messages的日志,但是格式上有所調整,如主機格式不一樣而已。

journalctl -n 20

實時滾動顯示最新日志

journalctl -f

查看指定服務的日志

journalctl /usr/lib/systemd/systemd

查看指定進程的日志

journalctl _PID=1

查看某個路徑的腳本的日志

journalctl /usr/bin/bash

查看指定用戶的日志

journalctl _UID=33 --since today

查看某個Unit的日志

journalctl -u nginx.service

journalctl -u nginx.service --since today

實時滾動顯示某個Unit的最新日志

journalctl -u nginx.service -f

合並顯示多個Unit的日志

journalctl -u nginx.service -u php-fpm.service --since today

 

查看指定優先級(以及以上級別)的日志

日志優先級共有8級:

0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug

journalctl -p err -b

 

不分頁標准輸出

       日志默認分頁輸出--no-pager改為正常的標准輸出

journalctl --no-pager

 

以JSON格式(單行)輸出

       JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScriptProgramming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java,JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。

       JSON建構於兩種結構:

       “名稱/值”對的集合(A collection ofname/value pairs):不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組(associativearray)。

       值的有序列表(An ordered list of values):在大部分語言中,它被理解為數組(array)。

       這些都是常見的數據結構。事實上大部分現代計算機語言都以某種形式支持它們。這使得一種數據格式在同樣基於這些結構的編程語言之間交換成為可能。

例子:

以JSON格式(單行)輸出

journalctl -b -u httpd.service -o json

以JSON格式(多行)輸出,可讀性更好,建議選擇多行輸出

journalctl -b -u httpd.service -o json-pretty

顯示日志占據的硬盤空間

journalctl --disk-usage

指定日志文件占據的最大空間

journalctl --vacuum-size=1G

指定日志文件保存多久

journalctl --vacuum-time=1years

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM