centos8系统,使用脚本检测频繁重启的bug

 

#!/bin/bash

# 输出标题
echo "=== CentOS 8 系统重启原因排查脚本 ==="
echo "运行时间:$(date)"
echo

# 1. 最近重启记录
echo "=== 最近重启记录 (last reboot) ==="
last reboot
echo

# 2. 检查 watchdog 模块是否加载
echo "=== 检查 watchdog 内核模块 (lsmod | grep wdt) ==="
lsmod | grep -i wdt
echo

# 3. 检查是否有 watchdog 守护进程服务
echo "=== 检查 watchdog.service 状态 ==="
systemctl status watchdog &>/tmp/watchdog.status
if grep -q "Loaded: not-found" /tmp/watchdog.status; then
    echo "未找到 watchdog.service"
else
    cat /tmp/watchdog.status
fi
echo

# 4. 检查是否存在 watchdog 配置文件
echo "=== 检查 /etc/watchdog.conf 文件 ==="
if [ -f /etc/watchdog.conf ]; then
    echo "/etc/watchdog.conf 存在"
    cat /etc/watchdog.conf | grep -v "^#" | grep -v "^$"
else
    echo "/etc/watchdog.conf 不存在"
fi
echo

# 5. 检查 yum-cron 自动更新设置
echo "=== 检查 yum-cron 是否启用自动重启 ==="
if systemctl is-enabled yum-cron &>/dev/null; then
    echo "yum-cron 已启用"
    if grep -q "apply_updates = yes" /etc/yum/yum-cron.conf && \
       grep -q "system_reboot = yes" /etc/yum/yum-cron.conf; then
        echo "⚠️ 注意:yum-cron 配置为自动更新并重启!"
    else
        echo "yum-cron 当前不会自动重启"
    fi
else
    echo "yum-cron 未启用"
fi
echo

# 6. 检查 cron.hourly 脚本内容
echo "=== 检查 /etc/cron.hourly/ 中的脚本 ==="
if [ "$(ls -A /etc/cron.hourly/ 2>/dev/null)" ]; then
    for script in /etc/cron.hourly/*; do
        echo "--- $script ---"
        cat "$script"
        echo
    done
else
    echo "/etc/cron.hourly/ 目录为空或不存在"
fi
echo

# 7. 检查内核 panic 设置
echo "=== 检查 kernel.panic 设置 ==="
sysctl kernel.panic
echo

# 8. 检查 journald 是否启用持久化日志
echo "=== 检查 journald 日志持久化状态 ==="
if [ -d /var/log/journal ]; then
    echo "✅ journald 持久化日志已启用"
else
    echo "❌ journald 持久化日志未启用,请运行:"
    echo "mkdir -p /var/log/journal && systemd-tmpfiles --create --prefix /var/log/journal && systemctl restart systemd-journald"
fi
echo

# 9. 检查 kdump 是否启用
echo "=== 检查 kdump 是否启用 ==="
if systemctl is-active --quiet kdump; then
    echo "✅ kdump 已启用"
else
    echo "❌ kdump 未启用,请运行:"
    echo "dnf install -y kexec-tools && systemctl enable kdump && systemctl start kdump"
fi
echo

# 结束提示
echo "✅ 排查结束。请检查输出中的 ⚠️ 标记项,并重点关注 cron.hourly 脚本和 yum-cron 设置。"
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值