本文目录导读:

获取系统崩溃转储(Crash Dump)通常需要管理员权限,并且可以通过多种脚本方式实现,根据你的操作系统环境,以下是几种常见的方法:
Windows 系统
PowerShell 脚本(推荐)
# 需要管理员权限运行 # 设置崩溃转储类型(0=无, 1=完全, 2=核心, 3=小内存) $dumpType = 1 # 完全内存转储 $dumpPath = "%SystemRoot%\MEMORY.DMP" # 修改注册表设置 Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl" -Name "CrashDumpEnabled" -Value $dumpType Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl" -Name "DumpFile" -Value $dumpPath # 获取当前设置 Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl" | Select-Object CrashDumpEnabled, DumpFile, MinidumpDir # 手动触发蓝屏(仅用于测试,会重启) # shutdown /r /t 0 /f
批处理脚本
@echo off :: 需要管理员权限 :: 查看当前崩溃转储设置 reg query "HKLM\SYSTEM\CurrentControlSet\Control\CrashControl" /v CrashDumpEnabled reg query "HKLM\SYSTEM\CurrentControlSet\Control\CrashControl" /v DumpFile :: 设置完全内存转储 reg add "HKLM\SYSTEM\CurrentControlSet\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f echo 崩溃转储设置已更新
使用 WMIC 查看崩溃记录
# 查看系统崩溃日志
Get-WinEvent -LogName System -MaxEvents 10 | Where-Object {$_.LevelDisplayName -eq "Error" -and $_.ProviderName -eq "BugCheck"}
# 检查是否有 MEMORY.DMP 文件
Test-Path "$env:SystemRoot\MEMORY.DMP"
Get-ChildItem "$env:SystemRoot\Minidump\*.dmp" -ErrorAction SilentlyContinue
Linux 系统
Bash 脚本 - 检查 kdump 设置
#!/bin/bash
# 检查 kdump 是否安装
if which kdumpctl > /dev/null 2>&1; then
echo "kdump 已安装"
kdumpctl status
else
echo "kdump 未安装,尝试安装..."
# sudo apt install kdump-tools # Debian/Ubuntu
# sudo yum install kexec-tools # RHEL/CentOS
fi
# 查看崩溃转储配置
cat /etc/kdump.conf
# 查看已有转储文件
ls -lh /var/crash/ 2>/dev/null || echo "未找到转储文件"
Python 脚本 - 解析 core dump
#!/usr/bin/env python3
import os
import subprocess
def check_core_dumps():
"""检查系统 core dump 文件"""
core_pattern = "/proc/sys/kernel/core_pattern"
# 读取 core dump 模式
with open(core_pattern, 'r') as f:
pattern = f.read().strip()
print(f"Core dump 模式: {pattern}")
# 检查常见的 core dump 位置
dump_locations = [
"/var/crash/",
"/var/lib/systemd/coredump/",
"/core",
os.path.expanduser("~/core")
]
for loc in dump_locations:
if os.path.exists(loc):
files = os.listdir(loc)
if files:
print(f"在 {loc} 找到转储文件:")
for f in files[:5]: # 只显示前5个
print(f" - {f}")
# 使用 coredumpctl 查看 systemd-coredump 信息
try:
result = subprocess.run(
["coredumpctl", "list", "--no-legend"],
capture_output=True, text=True, timeout=5
)
if result.stdout:
print("\nSystemd coredump 记录:")
print(result.stdout[:500])
except FileNotFoundError:
print("\ncoredumpctl 未安装")
if __name__ == "__main__":
check_core_dumps()
macOS 系统
Bash 脚本
#!/bin/bash # 查看崩溃报告位置 echo "=== 系统崩溃报告 ===" ls -lh ~/Library/Logs/DiagnosticReports/ 2>/dev/null # 使用 sysdiagnose 收集诊断信息(需要管理员权限) # sudo sysdiagnose -f /tmp/crash_dump -b # 查看核心转储设置 echo "Core dump 设置:" sysctl kern.coredump sysctl kern.corefile # 检查 panic 日志 echo "Panic 日志:" ls -lh /Library/Logs/DiagnosticReports/Kernel*.panic 2>/dev/null
通用脚本 - 跨平台检查
#!/usr/bin/env python3
"""跨平台系统崩溃转储检查脚本"""
import platform
import os
import subprocess
import sys
def check_dumps():
system = platform.system().lower()
if system == 'windows':
print("Windows 崩溃转储:")
dump_path = os.environ.get('SystemRoot', 'C:\\Windows') + '\\MEMORY.DMP'
minidump_path = os.environ.get('SystemRoot', 'C:\\Windows') + '\\Minidump'
if os.path.exists(dump_path):
size = os.path.getsize(dump_path)
print(f" MEMORY.DMP: {dump_path} ({size / 1024**3:.2f} GB)")
else:
print(" 未找到完全内存转储")
if os.path.exists(minidump_path):
files = [f for f in os.listdir(minidump_path) if f.endswith('.dmp')]
print(f" 小内存转储文件: {len(files)} 个")
elif system == 'linux':
print("Linux 崩溃转储:")
try:
result = subprocess.run(
["ls", "-lh", "/var/crash/"],
capture_output=True, text=True
)
print(result.stdout or " 无转储文件")
except:
print(" 无法访问 /var/crash/")
elif system == 'darwin':
print("macOS 崩溃转储:")
report_path = os.path.expanduser("~/Library/Logs/DiagnosticReports/")
if os.path.exists(report_path):
files = os.listdir(report_path)
print(f" 诊断报告: {len(files)} 个文件")
else:
print(f"不支持的系统: {system}")
if __name__ == "__main__":
if os.name == 'nt' and not sys.platform.startswith('win'):
print("请以管理员身份运行此脚本")
check_dumps()
注意事项
- 权限要求:大多数操作需要管理员/root权限
- 磁盘空间:完全内存转储可能占用数与RAM相同大小的空间
- 性能影响:设置崩溃转储可能会影响系统性能
- 隐私安全:崩溃转储可能包含敏感数据
- Windows:需要开启"自动重新启动"和"将事件写入系统日志"
建议先以非管理员身份运行查看脚本,确认系统状态后再进行配置更改。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播