linux

怎样在Apache中设置自动备份

小樊
40
2026-01-01 10:48:08
栏目: 编程语言

Apache自动备份实操指南

一 备份范围与准备

二 方案一 使用Shell脚本配合rsync做增量备份(推荐)

#!/bin/bash
set -Eeuo pipefail

# 可调参数
SOURCE="/var/www/html"
BACKUP_BASE="/backup/apache"
DATE_TAG=$(date +%Y%m%d%H%M%S)
BACKUP_DIR="$BACKUP_BASE/$DATE_TAG"
LOG_FILE="/var/log/apache_backup.log"

# 创建目录
mkdir -p "$BACKUP_DIR"

# 增量同步网站文件(保留权限、软链;--delete 保持与源一致)
rsync -a --delete "$SOURCE/" "$BACKUP_DIR/"

# 可选:同步配置与证书
# rsync -a /etc/httpd/conf /etc/httpd/conf.d "$BACKUP_DIR/"
# rsync -a /etc/letsencrypt "$BACKUP_DIR/letsencrypt"

# 可选:压缩归档
# tar -czf "$BACKUP_DIR.tar.gz" -C "$BACKUP_DIR" .

# 记录日志
echo "[$(date '+%F %T')] Backup finished: $BACKUP_DIR" >> "$LOG_FILE"

三 方案二 使用tar打包备份配置与网站内容(简单稳妥)

#!/bin/bash
set -Eeuo pipefail

BACKUP_BASE="/backup/apache"
DATE_TAG=$(date +%Y%m%d)
OUT_FILE="$BACKUP_BASE/apache_backup_$DATE_TAG.tar.gz"
LOG_FILE="/var/log/apache_backup.log"

mkdir -p "$BACKUP_BASE"

# 打包配置与网站根目录(按需增删路径)
tar -czf "$OUT_FILE" \
  /etc/httpd/conf /etc/httpd/conf.d \
  /var/www/html \
  /etc/letsencrypt 2>>"$LOG_FILE"

echo "[$(date '+%F %T')] Tar backup finished: $OUT_FILE" >> "$LOG_FILE"

四 远程备份、通知与保留策略

五 恢复与验证

0
看了该问题的人还看了