Featured image of post 使用Git自动备份我的世界存档

使用Git自动备份我的世界存档

使用Git自动备份我的世界存档

使用Git自动备份我的世界存档

托管平台的选择

GitHub

GitHub是目前最大的在线代码托管网站,其实也提供私有部署解决方案。GitHub 阻止超过 100 MB 的推送,即单个文件最大100MB,如果尝试添加或更新大于 50 MB 的文件,您将从 Git 收到警告。建议仓库保持较小,理想情况下小于 1 GB,强烈建议小于 5 GB。较小的仓库克隆速度更快,使用和维护更容易。缺点是国内访问速度慢,国内服务器可能会遇到连接不上的情况。

Gitee

国内的Git的代码托管服务平台,限制比Github严格,优点是国内访问速度快。

GitLab

Gitlab目前也有在线代码托管服务,但用得更多的还是私有部署的Gitlab。私有部署的Gitlab,仓库一般只限制了上传文件的大小。从代码的私有性上来看,GitLab 是一个更好的选择。缺点是服务器在国外,优点是Gitlab有开源社区版,可以部署到自己的服务器上。

Gogs

Gogs 旨在构建一个简单、稳定和可扩展的自托管 Git 服务,可以以最无痛的方式进行设置。使用 Go,这可以通过跨 Go 支持的所有平台(包括 Linux、macOS、Windows 和基于 ARM 的系统)的独立二进制分发来完成。优点是开源,方便部署,硬件要求低,使用方法和GitHub类似。

准备工作

  • 你的我的世界服务器

  • Github账号

创建仓库

打开GitHub首页

GitHub首页


GitHub创建仓库

这里我选择了公开仓库,其实一般也没人看,还方便后面推送。

GitHub仓库地址

这就是你的仓库地址,记住他。

推送前准备

Git安装

首先登录你的MC所在服务器,(Windows打开Git Bash)用下方命令查看Git版本(大多数服务器好像自带此命令,不用特意安装)

1
git --version    #查看Git版本

若返回 git --version **** 证明Git已安装,若不是请安装Git。

开始推送

ssh到你我的世界服务端所在服务器,例如我要备份我的世界存档文件夹world/ ,那么我们先cd到此目录。,然后执行以下命令。

1
git config --global init.defaultBranch main

由于Github在2020年把主分支由master改为main,所以要先执行上面这条命令把Git的默认分支更改为main。如果你用的是Gitee,则不需要输入这条命令。

Git用户配置

1
git config --global user.name "***"       # ***替换为你的Github用户名,就是登录时输入的那个
1
git config --global user.email "***"     # ***替换为你Github的邮箱

Git设置及推送

1
git init
1
git add .
1
git commit -m "第一次提交"     #双引号内为提交的注释
1
git remote add origin ***      #将***替换为你的仓库地址

若远程仓库不为空,例如有 README.md 文件请先执行同步指令

1
git pull --rebase origin main
1
git push -u origin main

推送时Windows用户会弹出授权窗口,授权即可,有些Linux用户推送到Gitee可能会重复提示让输入用户名和密码的情况,此时请使用ssh方法借助ssh公钥实现推送,经测试推送到GitHub不会出现这种情况。

不出意外,此时你已经推送成功了,接下来我们要实现自动推送。

自动推送

设置自动推送文件

新建一个 push.sh 文件(Windows用户已经安装Git,所以也可以执行.sh文件)输入以下代码,注意把分支名填对。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/bin/bash
git status
echo "####### 开始自动Git #######"
current_time=$(date "+%Y/%m/%d -%H:%M:%S")		# 获取当前时间
echo ${current_time}			# 显示当前时间
git add .
git commit -m "modified ${current_time}" 		# 远程仓库可以看到是什么时间修改的...
git push origin main
echo "####### 自动Git完成 #######"
sleep 2s

双击运行它,你可能会遇到在Windows在能运行此文件,但在Linux下不能,错误提示bad interpreter: No such file or directory这是因为Linux无法识别出Windows的DOS格式,此时只需将文件格式转换成unix的即可,方法如下。

1
vi push.sh     #编辑出错文件
1
:set ff        #报错文件格式是DOS
1
:set ff=unix     #修改格式
1
:wq     保存退出

这时重新执行,可以发现执行成功。

设置自动推送任务

Windows用户请借助 定时任务 实现自动执行脚本文件 参考文档

Linux用户请借助 Crontab 命令实现自动执行脚本文件 参考文档

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计