2401_86568270 2025-10-26 16:56 采纳率: 0%
浏览 5

为什么每次提取开机时间都是一样的


# 遍历每个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

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-10-26 17:00
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题分析

    根据你的问题描述,似乎你是在尝试提取 Ubuntu 系统的开机时间记录,但每次提取的结果都是相同的。这个问题可能与 recent_boots 变量的值有关。

    解决方案

    可能的原因包括:

    1. recent_boots 变量的值始终不变。
    2. recent_boots 变量的值始终是相同的 boot_id。

    为了解决这个问题,你可以尝试以下步骤:

    1. 检查 recent_boots 变量的值是否正确。
    2. 确保 recent_boots 变量的值是最新的。
    3. 如果使用 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
    

    注意

    上述代码仅供参考,具体的实现可能需要根据你的系统和需求进行调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月26日