云电脑到期自动备份脚本,防止项目数据丢失

云电脑到期后如果忘记续费,系统可能被释放,项目文件、数据库和配置会一起消失。
本文给出一套可直接落地的自动备份脚本方案,适合使用云电脑跑项目、又不想每天手动打包的用户。
照着做完,你能得到一个按天执行、自动清理旧文件、并同步到异地目录的备份流程。

先想清楚备份什么、存到哪里

动手写脚本前,先明确三件事,否则备份可能只是白占空间。

  • 备份对象:项目代码目录、数据库导出文件、Nginx 或应用的配置文件、.env 环境变量文件。
  • 本地存放:建议放在数据盘,例如 /data/backup,不要放在系统盘根目录。
  • 异地存放:云电脑一旦到期被释放,本地备份也会消失,所以至少同步一份到对象存储、另一台服务器或你本地电脑。

判断标准:只要备份文件和源数据在同一台云电脑上,就无法防止到期释放导致的数据丢失。

准备条件:

  • 云电脑可正常 SSH 登录,具备 root 或可写目标目录的账号。
  • 已安装 tar、gzip,数据库场景需有 mysqldump。
  • 已配置好到异地存储的通道,例如 rsync、scp 或对象存储命令行工具。

编写备份脚本

在 /usr/local/bin 下新建脚本,路径统一便于管理:

vim /usr/local/bin/auto_backup.sh

写入以下内容,按你的实际路径修改 SRC_DIR 和 DB_NAME:

#!/bin/bash
set -e

DATE=$(date +%F_%H%M)
BACKUP_DIR="/data/backup"
SRC_DIR="/www/wwwroot/myproject"
DB_NAME="myproject"
DB_USER="root"
DB_PASS="你的数据库密码"
KEEP_DAYS=7

mkdir -p "$BACKUP_DIR"

# 打包项目目录
tar -czf "$BACKUP_DIR/project_$DATE.tar.gz" "$SRC_DIR"

# 导出数据库
mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$BACKUP_DIR/db_$DATE.sql.gz"

# 删除超过保留天数的旧备份
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +$KEEP_DAYS -delete
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +$KEEP_DAYS -delete

echo "backup done: $DATE"

赋权并手动执行一次,确认没有报错:

chmod +x /usr/local/bin/auto_backup.sh
/usr/local/bin/auto_backup.sh
ls -lh /data/backup

看到 project_日期.tar.gz 和 db_日期.sql.gz 两个文件,说明本地备份成功。
如果提示 mysqldump: command not found,需要先安装 MySQL 客户端工具。

配置定时任务并同步到异地

用 crontab 让脚本每天自动跑一次,例如凌晨 3 点:

crontab -e

加入一行:

0 3 * * * /usr/local/bin/auto_backup.sh >> /var/log/auto_backup.log 2>&1

保存后查看任务是否生效:

crontab -l
tail -f /var/log/auto_backup.log

异地同步是整个方案的关键一步。 以 rsync 到另一台服务器为例,先在云电脑上配置免密登录,再在脚本末尾追加:

rsync -avz /data/backup/ user@备份服务器IP:/backup/cloudpc/

如果使用对象存储,把同步命令替换成对应厂商的命令行工具上传命令即可。

容易踩坑的地方

  • 数据库密码写死在脚本里:建议改为读取配置文件或使用 ~/.my.cnf,并给脚本设置 chmod 700,避免其他用户读取。
  • 只备份不清理:备份文件会持续增长,务必保留 find ... -mtime +N -delete 这类清理逻辑,KEEP_DAYS 按磁盘容量调整。
  • cron 环境变量缺失:手动执行成功、定时却失败,通常是 PATH 不同。可在脚本开头加 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin。
  • 备份时文件正在写入:数据库建议用 mysqldump 而非直接复制数据目录,避免拿到不一致的数据。
  • 到期当天才想起备份:云电脑到期后可能立即停止服务,脚本要提前几天就持续运行,不要卡在最后一天。

验证备份是否真的能用

备份文件存在不等于能恢复,建议定期做一次恢复演练:

mkdir -p /tmp/restore_test
tar -xzf /data/backup/project_日期.tar.gz -C /tmp/restore_test
gunzip -c /data/backup/db_日期.sql.gz | head -20

能正常解压、能看到 SQL 语句,说明文件没有损坏。判断条件:异地目录里能看到当天的备份文件,且解压后文件数量与源目录基本一致,才算备份有效。

如果发现异地文件缺失,优先检查 rsync 是否配置了免密、目标目录是否有写权限,以及日志里是否有 Permission denied。

关于常见疑问

脚本一定要用 MySQL 导出吗?
如果项目不用数据库,删掉 mysqldump 那几行,只保留 tar 打包即可。

备份保留几天合适?
取决于磁盘大小和项目重要程度,常见做法是本地保留 7 天、异地保留 30 天,具体以你的存储容量为准。

云电脑到期后还能恢复吗?
多数云厂商在到期后有一段保留期,但时长和政策以官方控制台实际显示为准,不要依赖保留期,提前备份更稳妥。

云电脑到期自动备份脚本的价值在于把“记得备份”变成系统自动执行。
先跑通本地打包,再补上异地同步和恢复验证,你的项目数据才算真正有了兜底。

分享到:
上一篇
多款云电脑GPU跑分横向对比,算力性能实测
下一篇
外贸独立站CMS本地化配置,多币种多税率完整设置
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意