在 Linux 中导出 syslog 日志,常见做法取决于你使用的发行版和日志系统(rsyslog / syslog-ng / systemd-journald)。下面按常见场景说明。
传统 syslog 通常在:
/var/log/syslog
/var/log/messages
/var/log/secure # 认证相关
cp /var/log/syslog /tmp/syslog.bak
或使用 cat / less / more 查看:
cat /var/log/syslog
less /var/log/syslog
grep "2025-01-20" /var/log/syslog > /tmp/syslog_20250120.log
awk '$1 ~ /Jan/ && $2 >= 10 && $2 <= 11' /var/log/syslog
很多现代 Linux 已使用 systemd-journald,syslog 只是其转发。
journalctl > /tmp/journal_all.log
journalctl -u sshd > sshd.log
journalctl --since "2025-01-20 00:00:00" --until "2025-01-20 23:59:59" > /tmp/syslog.log
journalctl -o short > /tmp/syslog_format.log
journalctl | gzip > syslog_$(date +%F).log.gz
tail -f /var/log/syslog > /tmp/syslog_live.log
或用 rsyslog 转发到远程服务器。
如果是 rsyslog,可编辑:
/etc/rsyslog.conf
示例转发:
*.* @@192.168.1.10:514
然后重启:
systemctl restart rsyslog
sudo cat /var/log/syslog
ls /var/log/syslog*
docker logs 或 journalctl# systemd 系统
journalctl --since today > today.log
# 传统 syslog
cp /var/log/syslog /tmp/syslog.bak
如果你能告诉我:
我可以给你一条 完全贴合你环境的命令。