发布于2026-08-22 阅读(0)
扫一扫,手机访问
利用 Apache 日志进行网站备份的实用方案

一 核心思路
二 快速上手流程
/var/log/apache2/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}手动测试:执行 sudo logrotate -v /etc/logrotate.conf;如需立即轮转执行 sudo logrotate -f /etc/logrotate.conf。tar -czvf /backup/apache2_logs_$(date +%Y%m%d).tar.gz /var/log/apache20 2 * * * /usr/bin/tar -czvf /backup/apache2_logs_$(date +%Y%m%d).tar.gz /var/log/apache2rsync -a v /backup/ user@remote:/backup/
# 或
scp /backup/apache2_logs_*.tar.gz user@remote:/backup/上述流程涵盖了Debian/Ubuntu以及CentOS/RHEL的常见路径和操作方式,既考虑了自动化,又兼顾了可维护性。
三 进阶方案与自动化脚本
ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/error_log.%Y%m%d 86400"
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log.%Y%m%d 86400" common修改后重启 Apache:sudo systemctl restart httpd。#!/usr/bin/env bash
set -Eeuo pipefail
BACKUP_DIR="/backup/apache"
DATE=$(date +"%Y%m%d%H%M%S")
LOG_FILE="/var/log/apache_backup.log"
mkdir -p "$BACKUP_DIR"
# 发行版差异
if [ -d /etc/apache2 ]; then
CONF_DIR="/etc/apache2"
LOG_DIR="/var/log/apache2"
else
CONF_DIR="/etc/httpd/conf"
LOG_DIR="/var/log/httpd"
fi
BACKUP_FILE="$BACKUP_DIR/apache_backup_$DATE.tar.gz"
tar -czvf "$BACKUP_FILE" -C "$CONF_DIR" . -C "$LOG_DIR" .
&& echo "[$DATE] SUCCESS: $BACKUP_FILE" >> "$LOG_FILE"
|| { echo "[$DATE] FAILED: $BACKUP_FILE" >> "$LOG_FILE"; exit 1; }
# 可选:远程同步
# rsync -a v --delete "$BACKUP_DIR/" user@remote:/backup/apache/ >> "$LOG_FILE" 2>&1赋权并加入 cron(每天 02:00):chmod +x /usr/local/bin/backup_apache.sh
0 2 * * * /usr/local/bin/backup_apache.sh >> /var/log/apache_backup.log 2>&1这个脚本呢,在Debian/Ubuntu以及CentOS/RHEL系统上都能正常使用哦。而且呀,要是有需要的话,还可以进一步扩展,实现网站文件和数据库的备份呢。
四 恢复与校验
sudo tar -xzvf /backup/apache2_logs_YYYYMMDD.tar.gz -C /var/log/sudo logrotate -f /etc/logrotate.conf
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9