在 Linux 系统中,导出日志的方法取决于你想导出的日志类型(系统日志、应用日志、内核日志等)以及系统使用的日志服务(syslog / journald / rsyslog)。下面按常见场景详细说明。
journalctl(最常见,适用于 systemd 系统)现代 Linux(CentOS 7+、Ubuntu 16.04+、Debian 8+)默认使用 systemd-journald。
journalctl > system.log
journalctl --since "2025-01-01" --until "2025-01-31" > system.log
支持格式:
"2025-01-01 08:00:00""1 hour ago""yesterday"journalctl -u nginx.service > nginx.log
多个服务:
journalctl -u nginx -u mysql > services.log
journalctl -k > kernel.log
journalctl -o json-pretty > system.json
常用格式:
jsonjson-prettyshortverbose/var/log 目录导出日志(传统方式)/var/log/
├── messages # 系统通用日志(部分系统)
├── syslog # Ubuntu/Debian
├── secure # 安全、登录相关(CentOS/RHEL)
├── dmesg # 内核启动日志
├── cron # 定时任务
├── boot.log # 启动日志
└── xxx/ # 应用日志目录
cp /var/log/syslog /tmp/syslog.bak
或打包:
tar czf logs.tar.gz /var/log
⚠️ 注意:有些日志需要 root 权限
sudo cp /var/log/secure /tmp/
rsyslog(传统 syslog)如果系统使用 rsyslog:
cat /etc/rsyslog.conf
logger "Test log message"
日志会写入 /var/log/messages 或 /var/log/syslog。
dmesg > dmesg.log
dmesg -T > dmesg.log
ssh user@server "journalctl" > local.log
journalctl -f > realtime.log
查看日志轮转配置:
ls /etc/logrotate.d/
| 场景 | 推荐方式 |
|---|---|
| 导出系统所有日志 | journalctl > system.log |
| 导出某个服务日志 | journalctl -u 服务名 |
| 导出某天日志 | journalctl --since --until |
| 传统系统 | /var/log 目录 |
| 内核问题 | dmesg / journalctl -k |
你可以告诉我:
cat /etc/os-release)我可以给你一条完全贴合你环境的命令。