在 Debian 系统中,“恢复日志文件”通常有几种不同场景,下面按最常见情况给你说明怎么做。
Debian 默认使用 rsyslog / systemd-journald 管理日志。
如果你是删了 /var/log/journal/*:
sudo systemctl restart systemd-journald
journald 会自动重建日志目录和文件。
查看日志:
journalctl
例如你删了:
/var/log/syslog/var/log/auth.log/var/log/messagessudo systemctl restart rsyslog
rsyslog 会重新创建缺失的日志文件。
sudo touch /var/log/syslog
sudo chown syslog:adm /var/log/syslog
sudo chmod 640 /var/log/syslog
sudo systemctl restart rsyslog
如果是:
> /var/log/syslog
✅ 不需要恢复,只是历史记录没了
✅ 新日志会继续写入
⚠️ 难度高,不保证成功
rmls -l /proc/*/fd | grep deleted
找到类似:
1234 -> /var/log/syslog (deleted)
复制恢复:
cp /proc/1234/fd/123 /var/log/syslog
然后:
sudo chown syslog:adm /var/log/syslog
sudo systemctl restart rsyslog
如果你有备份:
sudo cp /backup/var/log/syslog /var/log/syslog
sudo chown syslog:adm /var/log/syslog
cat /etc/logrotate.d/rsyslog
用:
sudo journalctl --vacuum-size=100M
你可以先执行:
ls -l /var/log
journalctl -n 20
如果你愿意,可以告诉我:
我可以给你精确恢复命令。