Android
如何讓 dmesg 儲存日誌文件?
我的手機一直在重啟。我想知道 dmesg 在它重新啟動的那一刻說了什麼,所以我可以診斷。
不幸的是,重啟不會發生,而且只有在我使用它時才會發生。我連續幾天無法將手機連接到筆記型電腦。我現在通過 adb 連接了它,當然小 varlet 沒有重新啟動。也沒有last_kmsg。
版本是 LineageOS 14。我在這裡發帖是因為這個問題的答案可能適用於所有基於 unix 的系統。如果你不喜歡,我想把它放到Android上。
我的設想是它不斷地寫入日誌,直到它重新啟動。我意識到如果手機不自行重啟,日誌最終會填滿 SD 卡。所以我正在描繪一個像這樣的腳本:
dmesg to log.1 if log.1 >1mb, delete it dmesg log.2 if log.2 >1mb, delete it dmesg to log.1
雖然我沒有寫它的能力。任何人都可以幫忙嗎?
如果您有足夠的能力執行
bash
腳本,這將維護一個文件計數器並使用它來創建一個循環的dmesg
日誌文件序列。#!/bin/bash dir=/path/to/storage # Location of persistent storage [[ -z "$dir/count" ]] && echo 0 >"$dir/count" # Seed the counter if missing while sleep 0.25 do count=$(( $(cat "$dir/count") +1 )) # Read the counter and increment [[ $count -gt 600 ]] && count=1 # Reset so we can reuse diskspace echo $count >"$dir/count" # Save the new value dmesg >"$dir/dmesg.$count" # Write the data done
您將需要按日期修改順序 (
ls -t
) 查看最多 600 個日誌文件的結果集,因為它們將像循環緩衝區一樣被寫入和重寫。