Linux系统备份Gitee等云git所有仓库与所有分支的数字资产

news/2024/9/29 3:26:37/

思路:

1. ssh 配置

2. reps.txt 列出所有仓库名

3. exp的自动化备份脚本

--

环境安装:

exp需要依赖安装的文件,所以先执行下(以ubuntu为例):

   sudo apt-get install expect

操作步骤:

ssh 配置

1. 添加公钥至 Gitee(Linux服务器)

 

ssh-keygen -t rsa -C "your_email@example.com" -f ~/.ssh/gitee>gitee
cat ~/.ssh/gitee>gitee.pub

 2. 编写 config 文件

 在 ~/.ssh/ 目录中创建或编辑 config 文件,添加以下内容:

Host GiteeUser gitHostname gitee>gitee.comIdentityFile ~/.ssh/gitee>gitee

注意事项

  • 确保 ~/.ssh/ 目录和 config 文件的权限设置正确。通常使用以下命令设置权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/gitee>gitee
chmod 600 ~/.ssh/config

整理需要clone的仓库名称:reps.txt

rep001

rep002

rep003

自动化备份脚本 

vim clone_repos.exp

#!/usr/bin/expectset original_dir [pwd]  ;# 记录当前的原始目录
set rep [open "reps.txt"]
while { [gets $rep line] != -1 } {set repo_path Gitee:chihj/$line.git"set mirror_path "$line.git"  ;# 假设镜像仓库存储在当前目录下,名称为 $line.git# 检查镜像仓库是否存在if {![file exists $mirror_path]} {# 如果不存在,克隆镜像spawn git clone --mirror $repo_path} else {# 如果存在,进入镜像目录并执行更新cd $mirror_pathspawn git fetch --all --prune}expect {"Are you sure you want to continue connecting" {send "yes\r"expect eof}eof}# 返回到原始目录cd $original_dir
}close $rep

运行: 

chmod +x clone_repos.exp
./clone_repos.exp

推荐方案

对于数字资产的长期备份,推荐使用 git clone --mirrorgit fetch --all 的结合方式.

再做个定时任务,就OKAY了。


http://www.ppmy.cn/news/1530669.html

相关文章

CoreDNS实现跨集群service解析实践

CoreDNS实现跨集群service解析实践 背景介绍使用条件实现方案 CoreDNS是一款使用Go语言实现的专为云原生应用而生的DNS服务器。本文介绍CoreDNS在特定实际场景下的一种进阶使用实践,也许能为其他也在使用CoreDNS做服务发现的同学提供一些启发和思考。 背景介绍 在…

使用AI进行需求分析的案例研究

生成式 AI 的潜在应用场景似乎无穷无尽。虽然这令人兴奋,但也可能让人不知所措。因此,团队在使用这项技术时需要有明确的目标:关键是要明确生成式 AI 在团队工作中能产生哪些实质性影响。 在软件工程中,一个引人注目的应用场景是…

Python Web 面试题

1 Web 相关 get 和 post 区别 get: 请求数据在 URL 末尾,URL 长度有限制 请求幂等,即无论请求多少次,服务器响应始终相同,这是因为 get 至少获取资源,而不修改资源 可以被浏览器缓存,以便以后…

LeetCode 1014. 最佳观光组合 一次遍历数组,时间复杂度O(n)

1014. 最佳观光组合 today 1014 最佳观光组合 题目描述 给定正整数数组 A&#xff0c;A[i] 表示第 i 个观光景点的评分&#xff0c;评分由 1 到 10^6 之间的整数。 一对景点&#xff08;A[i], A[j]&#xff09;的观光总得分为 A[i] A[j] i - j&#xff0c;其中 i < j。…

付费进群V5版本首发源码

付费进群V5版本首发 最新分站大屏 更新三个模板 仿官方模板等等 最新防注入技术 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89797314 更多资源下载&#xff1a;关注我。

【递归】5.leetcode 872 叶子相似的树

1 题目描述 题目链接&#xff1a;叶子相似的树 2 解答思路 递归分为三步&#xff0c;接下来就按照这三步来思考问题 第一步&#xff1a;挖掘出相同的子问题 &#xff08;关系到具体函数头的设计&#xff09; 第二步&#xff1a;只关心具体子问题做了什么 &#xff08;关…

工业交换机如何保证数据的访问安全

在现代工业自动化环境中&#xff0c;工业交换机作为关键的网络设备&#xff0c;扮演着数据传输和信息交互的重要角色。为了确保数据的访问安全&#xff0c;工业交换机不仅具备高效的转发性能&#xff0c;还集成了多层次的安全防护机制&#xff0c;以抵御各种潜在的网络威胁。 首…

alpine安装docker踩坑记

文章目录 前言错误场景正确操作最后 前言 你好&#xff0c;我是醉墨居士&#xff0c;最近使用alpine操作系统上docker遇到了一些错误&#xff0c;尝试解决之后就准备输出一篇博客&#xff0c;帮助有需要的后人能够少踩坑&#xff0c;因为淋过雨所以想给别人撑伞 错误场景 我…