磁盘空间耗尽
显示服务器崩溃
内核级故障
该脚本可通过chmod +x check_crash.sh
赋予执行权限后运行,建议添加到cron定时任务中定期检测
#!/bin/bash
# 检测内存不足场景
check_memory() {
free -h | awk '/^Mem:/ {print "可用内存: "$4}'
if free | awk '/^Mem:/ {exit ($4 < 100000)}'; then
echo "⚠️ 内存不足可能导致系统冻结或进程被杀"
fi
}
# 检测磁盘空间不足
check_disk() {
df -h / | awk 'NR==2 {print "根分区剩余空间: "$4}'
if df / | awk 'NR==2 {exit ($4 < 1000000)}'; then
echo "❌ 磁盘空间不足可能导致系统无法写入临时文件或更新失败"
fi
}
# 检测X Server崩溃
check_xserver() {
if systemctl is-active --quiet display-manager; then
echo "✅ X Server运行正常"
else
echo " X Server崩溃会导致GUI界面消失,需通过TTY修复"
fi
}
# 检测内核Oops事件
check_kernel() {
if dmesg | grep -q "Oops"; then
echo "☠️ 内核Oops可能引发硬件驱动失效或系统重启"
fi
}
main() {
echo "【Ubuntu系统健康度检测】"
check_memory
check_disk
check_xserver
check_kernel
}
main
以下是根据用户需求生成的Linux代码片段及分析,涵盖Ubuntu系统崩溃的常见场景及其影响:
#!/bin/bash
# 检测内存不足场景
check_memory() {
free -h | awk '/^Mem:/ {print "可用内存: "$4}'
if free | awk '/^Mem:/ {exit ($4 < 100000)}'; then
echo "⚠️ 内存不足可能导致系统冻结或进程被杀"
fi
}
# 检测磁盘空间不足
check_disk() {
df -h / | awk 'NR==2 {print "根分区剩余空间: "$4}'
if df / | awk 'NR==2 {exit ($4 < 1000000)}'; then
echo "❌ 磁盘空间不足可能导致系统无法写入临时文件或更新失败"
fi
}
# 检测X Server崩溃
check_xserver() {
if systemctl is-active --quiet display-manager; then
echo "✅ X Server运行正常"
else
echo " X Server崩溃会导致GUI界面消失,需通过TTY修复"
fi
}
# 检测内核Oops事件
check_kernel() {
if dmesg | grep -q "Oops"; then
echo "☠️ 内核Oops可能引发硬件驱动失效或系统重启"
fi
}
main() {
echo "【Ubuntu系统健康度检测】"
check_memory
check_disk
check_xserver
check_kernel
}
main
内存不足(OOM)
⚠️ 内存不足可能导致系统冻结或进程被杀
❌ 磁盘空间不足可能导致系统无法写入临时文件或更新失败
X Server崩溃会导致GUI界面消失,需通过TTY修复
☠️ 内核Oops可能引发硬件驱动失效或系统重启