我的手机老是重启。我想知道 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
虽然我没有能力写它。有人可以帮忙吗?
答案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
您将需要按日期修改顺序 ( ) 查看最多 600 个日志文件的结果集,ls -t
因为它们将像循环缓冲区一样被写入和重写。