13 10 月 2026

开服最惨的不是服挂了,是服挂了存档也没了。幻兽帕鲁几百小时的基地、方舟养了半年的龙、七日杀囤了一整套物资——一朝硬盘故障或者误操作,全部归零。

这篇讲游戏服备份的完整方案:哪些文件必须备份、怎么定时自动备、怎么验证备份是好的、出事怎么恢复。所有命令都给了,照着抄即可。

需要现成的游戏云服务器,可以看看财富云计算:支持快照功能,NAT 型无独立公网 IP,价格比带独立 IP 的机型省一半以上,游戏都能一键部署。

一、搞清楚:存档到底在哪

不同游戏的存档位置完全不同,备份错了文件等于白备:

游戏存档路径(Linux)关键内容
幻兽帕鲁Pal/Saved/SaveGames/ 世界存档、Config/ 服务器配置
方舟生存进化ShooterGame/Saved/SavedArks/ 地图存档、Config/ 配置
RUSTserver/<identity>/玩家数据、地图种子文件
我的世界 Javaworld/ + server.properties世界区块、配置
七日杀Saves/世界存档
森林之子SonsOfTheForestDS/Saved/存档
泰拉瑞亚世界文件 .wld地图本身
CS2 / 竞技类csgo/ 下的 addons 和 cfg插件、配置(无世界存档)

通用判断方法:不确定的话,看服务端目录里哪个文件夹最近被修改得最频繁——那就是存档目录。

二、三种备份方式,选哪种

方式 1:文件打包(最常用)

适合绝大多数游戏服,就是定期 tar 打包存档目录:

tar -czf /backup/palworld-$(date +%Y%m%d).tar.gz \
  -C /opt/games/palworld/server/Pal Saved Config

优点:简单、恢复就是解压。缺点:热备份可能拿到写了一半的文件。

方式 2:服务商快照(最稳)

云服务器控制台里的「快照」功能,把整块盘在某一时刻的状态拍下来。这是最可靠的方式,因为它在存储层做,不受应用层文件写入影响。

建议节奏:每周一次快照 + 每天一次文件备份。快照保底,文件备份方便快速回滚单个文件。

方式 3:异地备份(最重要)

前两种都在同一台机器上,机器整个没了就全没了。重要存档定期下载到本地,或者传到对象存储:

# 传到对象存储(以 COS 为例,用官方 coscmd 工具)
coscmd config   # 首次配置密钥
coscmd upload -rs /backup/ backup/games/

一周传一次全量,成本很低,但关键时候能救命。

三、完整备份脚本

这是一个可直接用的生产级脚本,支持多服、自动清理、日志记录:

#!/bin/bash
#=================================================
# 游戏服务器自动备份脚本
# 功能: 按服打包存档 + 自动清理 + 日志
# 用法: 加入 crontab 定时执行
#=================================================

BACKUP_ROOT="/opt/games-backup"
KEEP_DAYS=14              # 保留天数
LOG="/var/log/game-backup.log"
DATE=$(date +%Y%m%d-%H%M)

# 格式: 服务名:存档目录(相对服务端根目录)
GAMES=(
  "palworld:/opt/games/palworld/server/Pal"
  "ark:/opt/games/ark/server/ShooterGame/Saved"
  "terraria:/opt/games/terraria/server"
  "rust:/opt/games/rust/server/server"
)

log() { echo "[$(date '+%F %T')] $1" | tee -a "$LOG"; }

mkdir -p "$BACKUP_ROOT"

for entry in "${GAMES[@]}"; do
  name="${entry%%:*}"
  path="${entry#*:}"

  if [ ! -d "$path" ]; then
    log "警告: $name 存档目录不存在: $path, 跳过"
    continue
  fi

  # 打包(排除临时文件)
  target="$BACKUP_ROOT/${name}-${DATE}.tar.gz"
  tar -czf "$target" \
    --exclude='*.tmp' --exclude='*.log' \
    -C "$(dirname "$path")" "$(basename "$path")" 2>>"$LOG"

  if [ $? -eq 0 ]; then
    size=$(du -h "$target" | cut -f1)
    log "$name 备份成功: $target ($size)"
  else
    log "错误: $name 备份失败!"
  fi
done

# 清理过期备份
find "$BACKUP_ROOT" -name "*.tar.gz" -mtime +$KEEP_DAYS -delete
log "已清理 $KEEP_DAYS 天前的旧备份"
log "--- 本次备份结束 ---"

挂定时任务

chmod +x /opt/scripts/game-backup.sh
crontab -e
# 每天凌晨 4 点备份
0 4 * * * /opt/scripts/game-backup.sh

验证备份是否有效(90% 的人不做)

备份文件存在 ≠ 备份能用。每周抽一次检查:

# 检查压缩包完整性
gzip -t /opt/games-backup/palworld-20261013-0400.tar.gz && echo "压缩包完整"

# 看内容清单
tar -tzf /opt/games-backup/palworld-20261013-0400.tar.gz | head -20

更彻底的做法:每月一次恢复演练——把备份解压到临时目录,确认能正常解出存档结构。

四、恢复操作:分场景

场景 1:单个存档损坏,要回滚

# 1. 停服
systemctl stop palworld

# 2. 备份当前(损坏的)存档,万一还需要查问题
mv /opt/games/palworld/server/Pal/Saved /opt/games/palworld/server/Pal/Saved.broken

# 3. 解压备份
tar -xzf /opt/games-backup/palworld-20261012-0400.tar.gz \
  -C /opt/games/palworld/server/

# 4. 起服
systemctl start palworld

# 5. 进游戏验证存档正常,再删坏档

场景 2:整台机器没了,用快照恢复

控制台 → 云服务器 → 快照 → 选择时间点 → 回滚。回滚后机器回到快照时刻的状态,快照之后的所有数据都会丢失,所以重要数据先手动拉下来。

场景 3:换机器,存档要搬过去

# 旧机器: 打包
tar -czf palworld-full.tar.gz /opt/games/palworld

# 传到新机器 (用 scp)
scp palworld-full.tar.gz root@新机器IP:/opt/

# 新机器: 解压,装好依赖,起服

注意游戏版本要一致,服务端版本太旧可能读不了新存档,先更新服务端。

五、备份频率怎么定

参考这个表:

游戏热度建议频率理由
日常活跃服(天天有人玩)每天 1–2 次最多丢一天进度
周末开黑服每次玩完后 1 次存档变化集中在玩过之后
测试服每周 1 次无所谓丢失
刚开的新服每 6 小时前期进度最珍贵,掉一次能劝退一批人

配合快照:每周一次系统快照,长假(春节、国庆)前手动做一次全量备份。

六、五个血泪教训

  1. 备份文件要和游戏服在同一台机器 = 没备份。机器一炸全没,必须外传一份。
  2. tar 的时候不排除日志和临时文件。备份包会大到离谱,恢复也慢。
  3. 只备份世界文件,不备份配置文件。配置改了半个月,一恢复全回默认,玩家骂声一片。两个都要备。
  4. 不做恢复演练。真出事时发现备份是坏的,或者自己不会解压,急出一身汗。
  5. 用 date 做时间戳而不是固定文件名。固定名字会互相覆盖,想找上周二的存档?没有。

七、进阶:让备份更稳

停服备份(最稳,适合小服):备份前先停服,备份完再启动,牺牲几十秒可用性换数据一致性:

systemctl stop palworld
/opt/scripts/game-backup.sh
systemctl start palworld

增量备份(适合大服):用 rsync --link-dest 做硬链接增量,省空间:

rsync -a --delete --link-dest=/backup/yesterday \
  /opt/games/palworld/server/Pal/ /backup/today/

具体 rsync 用法可以看站内的 rsync 同步与定时备份实战。

小结

备份的核心不是「做了没有」,而是「能不能恢复」。每天自动打包 + 每周快照 + 每月恢复演练 + 定期外传异地,四件事做到,你的存档就真的安全了。

更多游戏开服教程(方舟、幻兽帕鲁、RUST、七日杀、森林之子等,均含 Windows / Linux 双版本)见财富云计算开服攻略。需要云服务器可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上。

延伸阅读
  1. 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
  2. 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
  3. 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
  4. 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
  5. 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
  6. RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
  7. 短链接服务搭建:Shlink 自托管,链接数据自己掌握
  8. 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
更多阅读
  1. 上一篇:多游戏共存一台服务器怎么配置:端口、内存、带宽全规划
  2. 下一篇:Linux 监控体系搭建:Prometheus + Grafana 入门实战
发表评论 17

取消回复