vault backup: 2025-07-22 22:14:08

Affected files:
Too many files to list
This commit is contained in:
2025-07-22 22:14:08 +08:00
parent 99f67788fc
commit 5d4e261181
202 changed files with 86 additions and 886 deletions

View File

@@ -1,129 +0,0 @@
## 看log
Raspberry Pi 4沒有`/var/log/syslog`,要使用`journalctl`
```bash
journalctl
```
Or
```bash
journalctl | grep SOMETHING
```
### 看系統訊息
```bash
journalctl -p 0
```
#### Error code意思
```
0: 紧急情况
1: 警报
2: 危急
3: 错误
4: 警告
5: 通知
6: 信息
7调试
```
### 看開機log
```bash
journalctl --list-boots
```
- 第一個數字顯示的是journald 的唯一的啟動追蹤號碼,你可以在下一個命令中使用它來分析該特定的啟動。
- 第二個數字是啟動ID你也可以在指令中指定。
- 接下來的兩個日期、時間組合是儲存在對應文件中的日誌的時間。如果你想找出某個特定日期、時間的日誌或錯誤,這就非常方便了。
例如:
```bash
journalctl -b -45
```
Or
```bash
journalctl -b 8bab42c7e82440f886a3f041a7c95b98
```
也可以使用 `-x` 選項在顯示器上加入systemd 錯誤訊息的解釋。在某些情況下,這是個救命稻草。例:
```bash
journalctl -xb -p 3
```
### 看某一特定時間、日期的日誌記錄
使用 `--since` 選項與 `yesterday``today``tomorrow` 或 `now` 組合。
以下是一些不同指令的範例。你可以根據你的需求修改它們。它們是不言自明的。以下命令中的日期、時間格式為 `"YYYY-MM-DD HH:MM:SS"`
```bash
journalctl --since "2020-12-04 06:00:00"
journalctl --since "2020-12-03" --until "2020-12-05 03:00:00"
journalctl --since yesterday
journalctl --since 09:00 --until "1 hour ago"
```
### 看內核特定的記錄
```bash
journalctl -k
```
### 過濾出某個systemd 服務單元的特定日誌
例如,如果要查看 NetworkManager 服務的日誌
```bash
journalctl -u NetworkManager.service
```
如果不知道service name看[[systemd#列出系統中的 systemd service]]
### 查看使用者、群組的日誌
```bash
id -u debugpoint # 先找出使用者的uid
journalctl _UID=1000 --since today
```
### 查看可執行檔的日誌
```bash
journalctl /usr/bin/gnome-shell --since today
```
### 看log佔用的磁碟空間
```bash
journalctl --disk-usage
```
### 清除日誌
#### 手動清除
```bash
sudo journalctl --flush --rotate # 將所有日誌歸檔
sudo journalctl --vacuum-time=7d # 只保留最近7天的日誌
sudo journalctl --vacuum-time=1s # 只保留最近1秒的日誌
```
或者設定日誌的大小
```bash
sudo journalctl --vacuum-size=400M # 保留最後400M
```
#### 自動清除
修改`/etc/systemd/journald.conf`,裡面有下面幾個設定項:
- `SystemMaxUse`: 指定日志在持久性存储中可使用的最大磁盘空间。例:`SystemMaxUse=500M`
- `SystemKeepFree`: 指定在将日志条目添加到持久性存储时,日志应留出的空间量。例:`SystemKeepFree=100M`
- `SystemMaxFileSize`: 控制单个日志文件在被轮换之前在持久性存储中可以增长到多大。例:`SystemMaxFileSize=100M`
- `RuntimeMaxUse`: 指定在易失性存储中可以使用的最大磁盘空间(在 /run 文件系统内)。例:`RuntimeMaxUse=100M`
- `RuntimeKeepFree`: 指定将数据写入易失性存储(在 /run 文件系统内)时为其他用途预留的空间数量。例:`RuntimeMaxUse=100M`
- `RuntimeMaxFileSize`: 指定单个日志文件在被轮换之前在易失性存储(在 /run 文件系统内)所能占用的空间量。例:`RuntimeMaxFileSize=200M`
修改後記得重啟 `journalctl`
![[journalctl#重啟日誌]]
也請記得[[journalctl#確認日誌的完整性]]
### 確認日誌的完整性
```bash
journalctl --verify
```
### 重啟日誌
若是有改變設定,記得重啟以讓變更生效:
```shell
sudo systemctl restart systemd-journald
```
### 參考
- [系統運作|如何使用journalctl 檢視和分析systemd 日誌(附實例)](https://linux.cn/article-15544-1.html)