首页 > 服务器 > 一种自动保存游戏记录的方案
作者:ghostry 发布时间:2025-07-07 浏览: 15
转载注明出处: https://blog.ghostry.cn/server/1137.html最近玩模拟器游戏,有一次不小心把存档搞丢了.于是每天手动保存存档,然后又感觉太麻烦.就萌生了做一个自动保存存档的想法.
因为我有一个git仓库.想到利用git保存所有记录的特性.利用脚本和crontab做一个每天自动提交.
脚本如此,放到存档目录,并且把存档目录做成git仓库.
#!/bin/bash
cd $(dirname $(readlink -f "$0"))
# 变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
COMMIT_MESSAGE="自动提交: $(date +'%Y-%m-%d %H:%M:%S')"
# 检查git状态
git status --porcelain >> /tmp/git_push.log 2>&1
if [ $? -ne 0 ]; then
echo "[$(date +'%Y-%m-%d %H:%M:%S')] git命令执行错误" >> /tmp/git_push.log
exit 1
fi
if [ -n "$(git status --porcelain)" ]; then
git add . >> /tmp/git_push.log 2>&1
git commit -m "$COMMIT_MESSAGE" >> /tmp/git_push.log 2>&1
git push >> /tmp/git_push.log 2>&1
echo "[$(date +'%Y-%m-%d %H:%M:%S')] 检测到未提交更改并已自动提交" >> /tmp/git_push.log
else
echo "[$(date +'%Y-%m-%d %H:%M:%S')] 没有检测到未提交的更改" >> /tmp/git_push.log
fi
在crontab配置每天0点执行.
拓展
如果想多个设备同步,可以脚本加git pull.模拟器启动和关闭时执行.
如果没有git,rsync也能实现类似功能.可以配合alist的dav,samba,nfs等.
或者用rclone
下一篇: