在 Debian 系统上备份 Nginx 日志,常见做法有几种,下面从简单到规范给你说明,并附上可直接用的命令。
Debian 下通常是:
/var/log/nginx/
常见文件:
access.logerror.logtar -czf nginx-logs-$(date +%F).tar.gz /var/log/nginx/
备份文件示例:
nginx-logs-2026-01-21.tar.gz
cp /var/log/nginx/access.log /backup/nginx-access-$(date +%F).log
Debian 默认已安装 logrotate,Nginx 官方包已自带配置。
cat /etc/logrotate.d/nginx
典型内容:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
systemctl reload nginx > /dev/null 2>&1
endscript
}
logrotate -f /etc/logrotate.d/nginx
✅ 优点:
mkdir -p /backup/nginx-logs
cp /var/log/nginx/access.log /backup/nginx-logs/access-$(date +%F).log
crontab -e
每天凌晨 2 点:
0 2 * * * tar -czf /backup/nginx-logs/nginx-logs-$(date +\%F).tar.gz /var/log/nginx/
错误示例 ❌:
rm /var/log/nginx/access.log
✅ 正确方式:
mv access.log access.log.old
systemctl reload nginx
rsync -avz /var/log/nginx/ user@backup-server:/data/nginx-logs/
| 场景 | 建议 |
|---|---|
| 个人 / 测试 | 手动 tar |
| 正式服务器 | logrotate |
| 长期归档 | logrotate + rsync |
| 高并发 | logrotate + reload |
如果你愿意,我可以帮你:
直接告诉我你的使用场景即可。