在 Debian 系统中,日志路径的修改取决于你使用的是哪种日志系统。Debian 常见日志系统有:
下面分别说明如何修改。
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
grep -R "/var/log" /etc/rsyslog.conf /etc/rsyslog.d/
默认示例:
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
例如,把 /var/log/syslog 改为 /data/logs/syslog:
sudo vim /etc/rsyslog.conf
修改前:
*.*;auth,authpriv.none -/var/log/syslog
修改后:
*.*;auth,authpriv.none -/data/logs/syslog
sudo mkdir -p /data/logs
sudo chown syslog:adm /data/logs
sudo chmod 750 /data/logs
sudo systemctl restart rsyslog
/etc/systemd/journald.conf
默认 journal 日志在:
/var/log/journal
修改配置:
sudo vim /etc/systemd/journald.conf
示例:
[Journal]
Storage=persistent
RuntimeMaxUse=100M
SystemMaxUse=500M
⚠️ 注意:
journald 不支持直接修改日志目录路径,只能控制大小、是否持久化。
如果你必须改路径,可用 软链接方式:
sudo systemctl stop systemd-journald
sudo mv /var/log/journal /data/log/journal
sudo ln -s /data/log/journal /var/log/journal
sudo systemctl start systemd-journald
sudo vim /etc/nginx/nginx.conf
error_log /data/logs/nginx/error.log;
access_log /data/logs/nginx/access.log;
sudo mkdir -p /data/logs/nginx
sudo chown -R www-data:adm /data/logs/nginx
sudo nginx -t
sudo systemctl reload nginx
如果改了日志路径,必须同步修改 logrotate,否则日志不会自动切割。
sudo vim /etc/logrotate.d/rsyslog
示例:
/data/logs/syslog
/data/logs/auth.log
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || true
endscript
}
/var/log/syslog
/var/log/auth.log
journalctl
| 日志类型 | 修改方式 |
|---|---|
| rsyslog | 改 /etc/rsyslog.conf |
| journald | 改存储方式或软链接 |
| 应用日志 | 改应用配置文件 |
| 日志轮转 | 改 /etc/logrotate.d/ |
如果你能告诉我:
我可以给你一份完全可直接复制的配置示例 ✅