# 遍历每个boot_id,提取开始/结束信息
for boot_id in $recent_boots; do
echo "=== 开机记录(boot_id: $boot_id)==="
# 提取开始时间(Logs begin at)
echo "开始时间:$(journalctl -b $boot_id --no-pager | head -1 | grep -oP 'Logs begin at \K.*')"
# 提取结束信息(systemd的Startup日志)
echo "结束信息:$(journalctl -b $boot_id --no-pager | grep -E '^systemd\[' | grep "Startup finished in" | head -1)"
echo ""
done
为什么每次提取开机时间都是一样的
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
5条回答 默认 最新
阿里嘎多学长 2025-10-26 17:00关注阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
问题分析
根据你的问题描述,似乎你是在尝试提取 Ubuntu 系统的开机时间记录,但每次提取的结果都是相同的。这个问题可能与
recent_boots变量的值有关。解决方案
可能的原因包括:
recent_boots变量的值始终不变。recent_boots变量的值始终是相同的 boot_id。
为了解决这个问题,你可以尝试以下步骤:
- 检查
recent_boots变量的值是否正确。 - 确保
recent_boots变量的值是最新的。 - 如果使用 shell 脚本,检查脚本是否正确执行了 boot_id 的遍历。
核心代码
#!/bin/bash # 检查 recent_boots 变量的值 echo "recent_boots 变量的值:$recent_boots" # 确保 recent_boots 变量的值是最新的 recent_boots=$(ls -t /var/log/boot.log | head -n 10) # 遍历每个 boot_id,提取开始/结束信息 for boot_id in $recent_boots; do echo "=== 开机记录(boot_id: $boot_id)===" # 提取开始/结束信息的具体代码 done注意
上述代码仅供参考,具体的实现可能需要根据你的系统和需求进行调整。
解决 无用评论 打赏 举报