最近在重新捯饬我的那台群辉 NAS,把备份功能重新整理一下。
突然发现,有很多需要备份的东西,并不是以常见的文件形式保存的,比如 Git 仓库 和 电子邮箱。
完整备份 Git 仓库, 不仅仅是备份文件,同时也要备份提交记录和标签,最好的形式是把远程 Git 仓库克隆到本地的 bare Git 仓库,并定期 fetch。
因此我开发了 gitdump 工具,可以批量读取 Github, Gitea, Gitee 和 Coding 的账户信息,枚举所有用户有权限的 Git 仓库,并以 Git bare 仓库格式,增量备份到本地。
代码地址
开源地址:https://github.com/guoyk93/gitdump
下载地址:https://github.com/guoyk93/gitdump/releases/tag/v1.0.0
使用方法
配置文件
首先准备一个 YAML 格式的配置文件,名叫 config.yaml
dir: repos
concurrency: 3
accounts:
- vendor: github
username: guoyk93
password: xxxxxxxxxxxxxxxxxxxxxx
- vendor: gitee
username: guoyk93
password: xxxxxxxxxxxxxxxxxxxxxx
- vendor: gitea
url: https://git.xxxx.com
username: guoyk
password: xxxxxxxxxxxxxxxxxxxxxxxx
- vendor: coding
url: https://myteam.coding.net
username: 2ejmutP8A
password: xxxxxxxxxxxxxxxxxxxxxxxxxx
执行
执行命令
chmod +x gitdump
./gitdump -conf config.yaml
gitdump 工具就会枚举你的账户有权限访问的所有 Git 仓库,备份到本地 repos 目录下,建立对应的 Git bare 仓库文件夹,并使用 git fetch -f --tags 等价命令,拉取最新代码。
其他
基于同样的理由,我也做了一个 imapdump 工具,用于批量备份邮件并保存到本地的 .eml 文件中,下一篇文章介绍
|