journalctl #日志控制命令
Systemd 統一管理所有 Unit 的啟動日志。帶來的好處就是,可以只用journalctl一個命令,查看所有日志(內核日志和應用日志)。日志的配置文件是/etc/systemd/journald.conf。journalctl功能強大,用法非常多。
journalctl [OPTIONS] [MATCHES]
- OPTIONS
- -u #顯示指定的unit的日志信息
- -f #實時更新
- --since TIME --unitl TIME #設置輸出日志信息的開始與結束時間
- EXAMPLE
- journalctl -u sshd.service -f #實時查看sshd服務的日志信息
- journalctl --since "2018-11-13" --until "2018-11-14 03:00" #
# 查看所有日志(默認情況下 ,只保存本次啟動的日志)
$ sudo journalctl
# 查看內核日志(不顯示應用日志)
$ sudo journalctl -k
# 查看系統本次啟動的日志
$ sudo journalctl -b
$ sudo journalctl -b -0
# 查看上一次啟動的日志(需更改設置)
$ sudo journalctl -b -1
# 查看指定時間的日志
$ sudo journalctl --since="2012-10-30 18:17:16"
$ sudo journalctl --since "20 min ago"
$ sudo journalctl --since yesterday
$ sudo journalctl --since 09:00 --until "1 hour ago"
# 顯示尾部的最新10行日志
$ sudo journalctl -n
# 顯示尾部指定行數的日志
$ sudo journalctl -n 20
# 查看指定服務的日志
$ sudo journalctl /usr/lib/systemd/systemd
# 查看指定進程的日志
$ sudo journalctl _PID=1
# 查看某個路徑的腳本的日志
$ sudo journalctl /usr/bin/bash
# 查看指定用戶的日志
$ sudo journalctl _UID=33 --since today
# 查看某個 Unit 的日志
$ sudo journalctl -u nginx.service
$ sudo journalctl -u nginx.service --since today
# 實時滾動顯示某個 Unit 的最新日志
$ sudo 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
$ sudo journalctl -p err -b
# 日志默認分頁輸出,--no-pager 改為正常的標准輸出
$ sudo journalctl --no-pager
# 以 JSON 格式(單行)輸出
$ sudo journalctl -b -u nginx.service -o json
# 以 JSON 格式(多行)輸出,可讀性更好
$ sudo journalctl -b -u nginx.serviceqq
-o json-pretty
# 顯示日志占據的硬盤空間
$ sudo journalctl --disk-usage
# 指定日志文件占據的最大空間
$ sudo journalctl --vacuum-size=1G
# 指定日志文件保存多久
$ sudo journalctl --vacuum-time=1years