在 Debian 系统中,提取日志主要依赖 systemd 日志系统(journalctl) 和 传统日志文件。下面按常见场景给你一套实用方法。
journalctl(推荐,systemd 系统)journalctl
journalctl -f
journalctl -u nginx
journalctl -u ssh
journalctl -u docker
# 今天
journalctl --since today
# 最近 1 小时
journalctl --since "1 hour ago"
# 指定时间段
journalctl --since "2025-01-01 08:00:00" --until "2025-01-01 18:00:00"
journalctl -u nginx > nginx.log
journalctl --since today > today.log
journalctl -k
Debian 仍然保留传统日志目录:
ls /var/log
| 日志 | 说明 |
|---|---|
/var/log/syslog |
系统日志 |
/var/log/messages |
部分系统消息 |
/var/log/auth.log |
登录、SSH、sudo |
/var/log/kern.log |
内核日志 |
/var/log/dpkg.log |
软件安装/卸载 |
/var/log/apt/history.log |
apt 操作记录 |
cat /var/log/syslog
less /var/log/syslog
tail -f /var/log/syslog
grep "error" /var/log/syslog
grep -i "failed" /var/log/auth.log
journalctl | grep ssh
journalctl _PID=1234
journalctl _UID=1000
journalctl --since "2025-01-01" > system.log
tar czf logs.tar.gz system.log
可能是日志未持久化,检查:
ls /var/log/journal
启用持久化:
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
✅ 查看 SSH 登录失败:
journalctl -u ssh | grep "Failed"
✅ 查看今天系统错误:
journalctl --since today --priority=err
✅ 查看某时间段 nginx 错误:
journalctl -u nginx --since "09:00" --until "10:00"
如果你能告诉我:
我可以给你更精确的命令。