nginx 本身不支持静态资源定时备份,需通过外部脚本+cron 实现:先确认静态路径(如 /var/www/html),再编写备份脚本打包压缩并排除日志、缓存等,最后用 cron 每日凌晨3:15自动执行。

配置 Nginx 实现静态资源文件的定时备份,核心不是修改 Nginx 配置本身,而是通过系统级脚本+定时任务,定期打包、压缩并归档存放静态资源目录(如 /var/www/html、/data/static 等)。Nginx 只负责提供服务,备份需由外部机制完成。
明确要备份的静态资源路径
先确认你的静态资源实际存放位置。常见路径包括:
-
/var/www/html(默认 Web 根目录) -
/data/static(自定义部署路径) -
/usr/share/nginx/html(RPM 安装的 CentOS/RHEL 默认路径) - 或你在 Nginx
server块中用root或alias指定的任意目录
建议在备份脚本中用变量明确定义,避免硬编码出错。
编写轻量备份脚本
创建脚本 /usr/local/bin/backup-static.sh,内容如下:
#!/bin/bash
# 静态资源主目录(按实际修改)
STATIC_ROOT="/var/www/html"
# 备份目标目录(确保有写入权限)
BACKUP_DIR="/backup/static"
# 时间戳(精确到分钟,避免重复覆盖)
TIMESTAMP=$(date +'%Y%m%d_%H%M')
<p>mkdir -p "$BACKUP_DIR"</p><h1>打包压缩,排除临时文件和缓存(可选)</h1><p>tar -czf "$BACKUP_DIR/static<em>backup</em>${TIMESTAMP}.tar.gz" \
-C "$(dirname "$STATIC_ROOT")" "$(basename "$STATIC_ROOT")" \
--exclude='*.log' --exclude='cache/' --exclude='.git'</p><h1>可选:保留最近7天备份,自动清理旧包</h1><p>find "$BACKUP_DIR" -name "static<em>backup</em>*.tar.gz" -mtime +7 -delete</p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill6848" title="Nginx Hosting"><img
src="https://img.php.cn/upload/skill/000/000/081/179116929868126.jpg" alt="Nginx Hosting" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill6848" title="Nginx Hosting" class="overflowclass">Nginx Hosting</a>
<p class="overflowclass">通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。</p>
</div>
<a rel="nofollow" href="/xiazai/skill6848" title="Nginx Hosting" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div><p>echo "✅ Static backup completed: ${TIMESTAMP}"
</p>
保存后赋予执行权限:sudo chmod +x /usr/local/bin/backup-static.sh
设置 cron 定时任务
以 root 用户编辑定时任务(因备份可能涉及权限敏感路径):
sudo crontab -e
添加一行,例如每天凌晨 3:15 自动执行:
15 3 * * * /usr/local/bin/backup-static.sh >> /var/log/static-backup.log 2>&1
日志会记录每次执行结果,便于排查失败原因。
(可选)增强可靠性:加入校验与远程留存
若需更高保障,可在脚本末尾追加:
- 用
sha256sum生成备份包校验值,写入同名.sha256文件 - 用
rsync或ossutil64同步到另一台服务器或阿里云 OSS - 备份前检查磁盘剩余空间(
df -h $BACKUP_DIR | awk 'NR==2 {print $5}' | sed 's/%//')
这些扩展不改变 Nginx 配置,但显著提升备份健壮性。










