在 Debian 系统中,日志提取主要依赖 systemd-journald 和传统的 rsyslog/syslog 机制。下面按“常用 → 进阶 → 自动化”的方式给你一个完整说明。
journalctl(推荐,systemd 系统)Debian 默认使用 systemd,日志由 systemd-journald 管理。
journalctl
journalctl -b
journalctl -b -1
journalctl -f
journalctl -u ssh.service
journalctl -u nginx.service
journalctl --since "2025-01-01" --until "2025-01-31"
journalctl --since "1 hour ago"
journalctl -u nginx.service > nginx.log
如果系统仍使用 rsyslog,日志以文件形式存在。
/var/log/syslog # 通用系统日志
/var/log/messages # 部分系统
/var/log/auth.log # 登录、sudo、SSH
/var/log/kern.log # 内核日志
/var/log/dpkg.log # 软件安装日志
/var/log/apt/
cat /var/log/syslog
less /var/log/syslog
tail -f /var/log/auth.log
grep "2025-01-21" /var/log/syslog > today.log
dmesg
dmesg -T # 显示可读时间
dmesg > dmesg.log
journalctl -u ssh
# 或
grep sshd /var/log/auth.log
journalctl -p err..alert --since "2025-01-20"
journalctl -u 服务名
coredumpctl list
coredumpctl info <PID>
journalctl --no-pager > system.log
journalctl -u nginx > nginx.log
tar czf logs.tar.gz /var/log
rsyslog 发送远程日志编辑:
/etc/rsyslog.conf
添加:
*.* @@logserver:514
journal-remote(systemd)systemd-journal-remote
可能未安装 rsyslog:
sudo apt install rsyslog
sudo systemctl enable --now rsyslog
可能日志被限制大小:
journalctl --disk-usage
调整:
/etc/systemd/journald.conf
# SystemMaxUse=200M
| 需求 | 命令 |
|---|---|
| 查看系统日志 | journalctl |
| 实时日志 | journalctl -f |
| 某个服务 | journalctl -u 服务名 |
| 传统日志 | /var/log/syslog |
| 导出日志 | journalctl > file.log |
如果你能说明 具体用途(如:排查宕机、SSH 被爆破、程序崩溃、取证、合规审计),我可以给你一套精准提取方案或脚本。