应优先使用journalctl导出结构化日志:第一步用sudo journalctl -b > /tmp/boot_logs_$(date +%y%m%d_%h%m).log导出本次启动全部日志;第二步用sudo journalctl --since "1 hour ago" -p err..warning --no-pager > /tmp/err_warn_recent.log提取近一小时错误警告;第三步用sudo journalctl -u sshd --since today --no-pager > /tmp/sshd_today.log聚焦指定服务;第四步用sudo journalctl -o json --all > /tmp/all_logs.json导出json格式全量日志。

您需要在银河麒麟系统中通过命令行快速获取可用于故障分析的系统日志,但不确定该用哪个命令、导出哪些内容、是否需加权限或时间筛选,避免因日志不全或格式错误导致技术支持无法定位问题。
用 journalctl 导出结构化系统日志
journalctl 是 systemd 日志服务的原生命令,所有由 systemd 管理的服务(包括 ssh、nginx、dbus、lightdm 等)日志均被集中存储为二进制结构化数据,支持精准时间、服务、优先级过滤,导出结果可直接用于分析。
第一步:导出当前启动周期全部日志(不含历史关机前日志),适合排查本次开机后发生的异常:
sudo journalctl -b > /tmp/boot_logs_$(date +%Y%m%d_%H%M).log
第二步:只提取过去 1 小时内错误(err)和警告(warning)级别的日志,减少干扰信息:
sudo journalctl --since "1 hour ago" -p err..warning --no-pager > /tmp/err_warn_recent.log
第三步:导出指定服务(如 sshd)自今天零点起的日志,便于聚焦某组件行为:
sudo journalctl -u sshd --since today --no-pager > /tmp/sshd_today.log
第四步:以 JSON 格式导出全部日志,保留原始字段(如 _PID、_HOSTNAME、_SYSTEMD_UNIT),方便程序解析或导入 ELK:
sudo journalctl -o json --all > /tmp/all_logs.json
【必须加 --no-pager,否则输出会卡在 less 分页器里,导致重定向失败】
打包 /var/log/ 下原始文本日志文件
/var/log/ 目录存放的是传统文本日志,如 syslog、auth.log、kern.log、messages,这些文件不依赖 systemd,即使 journalctl 不可用也能提供基础线索,适用于离线归档或合规审计场景。
方法一:仅复制最核心的 4 个日志文件,命名带时间戳,操作最快:
sudo cp /var/log/syslog /var/log/auth.log /var/log/kern.log /var/log/messages /tmp/logs_core_$(date +%Y%m%d_%H%M)/ 2>/dev/null || mkdir -p /tmp/logs_core_$(date +%Y%m%d_%H%M) && sudo cp /var/log/syslog /var/log/auth.log /var/log/kern.log /var/log/messages /tmp/logs_core_$(date +%Y%m%d_%H%M)/
方法二:捕获内核环形缓冲区快照(dmesg),这部分内容不会自动写入 /var/log/,专用于识别硬件兼容性、驱动加载失败等问题:
sudo dmesg > /tmp/dmesg_$(date +%Y%m%d_%H%M).log
方法三:将整个 /var/log/ 中近 3 天修改过的 .log 和 .txt 文件打包压缩,保留滚动日志(如 messages.1.gz)以便追溯:
sudo find /var/log/ -type f \( -name "*.log" -o -name "*.txt" \) -mtime -3 | xargs tar -czf /tmp/var_log_3days_$(date +%Y%m%d_%H%M).tar.gz 2>/dev/null
用 kylin-iodiag-tools 提取 IO 行为日志
当遇到文件莫名丢失、内容被覆盖、程序读写卡顿等疑难问题时,需启用 IO 级别追踪。kylin-iodiag-tools 是麒麟深度集成的诊断工具,能记录进程级文件访问路径、读写大小、元数据变更,普通 journalctl 无法替代。
确认工具存在且可用:
which kylin-iodiag-tools
执行 90 秒 IO 行为捕获(默认输出到 /var/log/kylin-iodiag/ 下带时间戳的目录):
sudo kylin-iodiag-tools --capture --duration 90
导出刚生成的最新 IO 日志包(路径由工具自动创建,无需手动指定):
sudo tar -czf /tmp/iodiag_capture_$(date +%Y%m%d_%H%M).tar.gz $(ls -td /var/log/kylin-iodiag/* | head -n1)
【若提示 command not found,请先安装:sudo apt install kylin-iodiag-tools】
单独导出安装器失败日志
如果您在系统安装阶段(如使用 kylin-installer)遭遇失败,其日志独立于 systemd 和 /var/log/,专存于 /var/log/installer/,是定位安装中断原因的唯一依据。
直接打包该目录下全部内容:
sudo tar -czf /tmp/installer_fail_logs_$(date +%Y%m%d_%H%M).tar.gz /var/log/installer/
这一步操作起来很简单,不需要额外参数或筛选——只要安装器运行过,该目录就存在有效日志。
通过图形化日志查看器导出桌面环境日志
如果当前已登录桌面环境,且终端不可用(如 Xorg 崩溃后仅剩 tty),可改用图形界面方式快速导出与桌面强相关的日志,如 gnome-shell、mutter、lightdm、ibus 的近期活动。
打开“日志查看器”应用(可在开始菜单搜索“日志”或运行 gnome-logs);
点击右上角“≡”菜单 → 选择“保存日志” → 设置保存路径为 /tmp/desktop_logs_$(date +%Y%m%d_%H%M).log → 点击“保存”;
该操作会自动过滤出 desktop、user、session 相关日志,并按时间倒序排列,适合向桌面支持团队提交。











