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

云电脑到期后如果未续费,
服务商通常会在保留期后释放实例,
磁盘数据一并清除。在到期前用脚本自动备份关键目录,
是成本最低的防丢手段。
下面从零开始,
教你写一个能在到期前触发、
自动打包并上传到远程存储的备份脚本,
适用于主流 Linux 云电脑。

先确认三件事:备份目标、存储位置、执行身份

动手写脚本前,先明确以下信息,否则脚本很容易跑偏:

  • 备份什么:常见的是 /home、/www、/data、数据库导出文件。用 du -sh /data 先看体积,避免备份包过大。
  • 存到哪里:推荐备份到另一台服务器、对象存储或你本地电脑。不要只备份在同一块云盘上,实例释放后一起消失。
  • 用什么身份跑:建议用 root 或具备读取目标目录权限的账号执行,否则会出现 Permission denied。

检查磁盘剩余空间,确保备份临时目录至少有源数据 1.5 倍的空间:

df -h /backup

如果 /backup 不存在,先创建:

mkdir -p /backup

编写自动备份脚本

新建脚本文件 /root/auto_backup.sh,内容如下(按需修改路径和远程地址):

#!/bin/bash

# 备份源目录,多个目录用空格分隔
SOURCE_DIRS="/www /data"

# 本地临时备份目录
BACKUP_DIR="/backup"

# 保留最近几份备份
KEEP_DAYS=7

# 远程备份目标(示例为另一台服务器,需提前配置免密登录)
REMOTE_USER="backup"
REMOTE_HOST="192.0.2.10"
REMOTE_PATH="/backup/cloudpc"

DATE=$(date +%Y%m%d_%H%M%S)
ARCHIVE="${BACKUP_DIR}/backup_${DATE}.tar.gz"

# 打包
tar -czf "$ARCHIVE" $SOURCE_DIRS 2>>/var/log/auto_backup.log

# 判断打包是否成功
if [ $? -ne 0 ]; then
    echo "$(date) 打包失败" >> /var/log/auto_backup.log
    exit 1
fi

# 上传到远程
scp "$ARCHIVE" ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}/ 2>>/var/log/auto_backup.log

if [ $? -eq 0 ]; then
    echo "$(date) 备份成功: $ARCHIVE" >> /var/log/auto_backup.log
else
    echo "$(date) 上传失败: $ARCHIVE" >> /var/log/auto_backup.log
fi

# 清理本地过期备份
find "$BACKUP_DIR" -name "backup_*.tar.gz" -mtime +${KEEP_DAYS} -delete

赋予执行权限:

chmod +x /root/auto_backup.sh

关键点:scp 上传需要提前配置 SSH 免密登录,否则脚本会卡在密码输入。
配置方法:

ssh-keygen -t rsa
ssh-copy-id backup@192.0.2.10

用 crontab 设置到期前定时执行

假设云电脑在每月 28 日到期,希望提前 3 天(25 日)自动备份,可以这样配置:

crontab -e

加入一行:

0 2 25 * * /root/auto_backup.sh

这表示每月 25 日凌晨 2 点执行一次。如果到期时间不固定,建议改成每天执行一次,保留最近 7 天备份,这样无论何时到期都有近期副本:

0 2 * * * /root/auto_backup.sh

保存后确认任务已生效:

crontab -l

验证备份是否真的可用

脚本跑完不等于备份可用,必须做恢复验证:

  • 查看日志确认没有报错:tail -20 /var/log/auto_backup.log
  • 检查远程目录是否出现新文件:ssh backup@192.0.2.10 "ls -lh /backup/cloudpc"
  • 在测试目录解压验证:tar -tzf backup_日期.tar.gz | head,能列出文件说明包完整
  • 真正恢复一次到临时目录,确认文件内容和权限正确

只有解压验证通过的备份才算有效备份。

容易踩的坑

  • 只备份不验证:压缩包损坏或上传中断很常见,定期解压检查是必要步骤。
  • 备份到同一块盘:实例释放后数据全丢,远程或对象存储才是安全位置。
  • 忽略数据库:直接 tar 数据库文件可能得到不一致的数据,建议先 mysqldump 导出再打包。
  • cron 环境变量缺失:crontab 不加载用户环境变量,脚本里尽量用绝对路径,或在脚本开头加 source /etc/profile。
  • 磁盘写满导致打包失败:定期清理旧备份,KEEP_DAYS 不要设置过大。

常见疑问

脚本执行了但没有备份文件? 先看日志 /var/log/auto_backup.log,常见原因是权限不足或远程登录失败。

云电脑是 Windows 系统怎么办? 可以用 PowerShell 写压缩脚本,配合任务计划程序定时执行,思路相同:打包、传输到远程、保留多份。

备份文件太大上传慢? 可以只备份核心数据目录,或在 tar 命令中排除缓存和日志目录,例如 --exclude=*/cache。

到期后还能恢复吗? 取决于服务商的保留策略,建议以控制台实际显示为准,不要依赖到期后的宽限期。

把脚本和定时任务配置好之后,建议先手动执行一次 /root/auto_backup.sh,确认日志、远程文件和本地清理都正常,再交给 cron 自动运行。
这样即使云电脑到期,你手里也有可恢复的数据副本。

分享到:
上一篇
云电脑防火墙设置,限制端口访问保障安全:云电脑防火墙设置
下一篇
停止维护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 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意