在 CentOS 上备份 Apache 日志,通常做法是从日志文件本身和**日志轮转机制(logrotate)**两方面来考虑。下面按常见场景给你说明。
默认路径一般是:
/var/log/httpd/
常见文件:
access_log:访问日志error_log:错误日志(如果你编译安装或用 REMI,路径可能不同)
tar czf httpd-logs-$(date +%F).tar.gz /var/log/httpd/
备份到指定目录:
tar czf /backup/httpd-logs-$(date +%F).tar.gz /var/log/httpd/
cp /var/log/httpd/access_log /backup/access_log_$(date +%F)
CentOS 默认已经通过 logrotate 管理 Apache 日志。
cat /etc/logrotate.d/httpd
典型内容:
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
delaycompress
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
endscript
}
logrotate -fv /etc/logrotate.d/httpd
轮转后旧日志会变成:
access_log.1
access_log.2.gz
你可以定期把这些 .gz 文件拷贝到备份服务器。
crontab -e
添加:
0 2 * * * tar czf /backup/httpd-logs-$(date +\%F).tar.gz /var/log/httpd/
rsync -avz /var/log/httpd/ user@backup-server:/backup/httpd/
备份时 Apache 在写日志
logrotate 或 cp 一般没问题mv 正在写入的日志磁盘空间
权限
root 或 apache700 权限✅ 生产环境标准做法
logrotatersync 或 tar 到备份服务器如果你愿意,我可以帮你: