3

把 git 作为电脑系统备份的一个方案?

 1 year ago
source link: https://www.v2ex.com/t/948590
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

把 git 作为电脑系统备份的一个方案?

  289396212 · 11 小时 57 分钟前 · 2643 次点击
假设有系统备份的需求,大家有没有想过,无论 win/mac/linux 系统的电脑,在根目录下 git init ,把整个磁盘作为一个 repo ,可以写个脚本每天自动 git commit,然后 push ,备份系统
46 条回复    2023-06-14 22:52:55 +08:00
nicreve

nicreve      11 小时 53 分钟前

就算用 Git LFS ,空间占用和性能估计也很差。
zgqq

zgqq      11 小时 51 分钟前

快照应该比你这种方式好 10 倍吧
crayygy

crayygy      11 小时 46 分钟前

可以试试看,不需要用 root folder 测试,找一个有大量小文件并且会经常有 change 的目录,然后就知道 git 不是用来干这个事情的了。
kaiger

kaiger      11 小时 46 分钟前

git 备份一些配置文件是极好的

git --work-tree=$HOME --git-dir=$HOME/.dotfiles.git
aptupdate

aptupdate      11 小时 42 分钟前

理论上应该可以,不过得考虑到空间占用和性能问题。。。
但是为啥要用 git 呢,传到 GitHub 上?
备份系统有更好的方案,哪怕是把备份出来的快照传到 git 上。
cheng6563

cheng6563      11 小时 35 分钟前

不如 svn
xiangyuecn

xiangyuecn      11 小时 34 分钟前

你猜会不会有奇怪的目录 和 文件
deplivesb

deplivesb      11 小时 32 分钟前

git 对大量的小文件的性能是很差的
realpg

realpg      11 小时 25 分钟前

我这有 80 块 18T 硬盘 你要不要买点?估计一年就差不多了
HannibaI

HannibaI      11 小时 22 分钟前

yinmin

yinmin      10 小时 45 分钟前

windows 最简单的备份是用“文件历史记录”,Mac 最简单的备份是用“时间机器”,可以配置成每小时差异备份一次,将文件备份给另外一台机器的共享目录上。
LindsayZhou

LindsayZhou      10 小时 39 分钟前

我 pull 过 linux kernel 的代码,也自己做过它的镜像,从这个经验来说,绝对不值得。

要实现类似的增量备份和回滚,推荐 restic
TsubasaHanekaw

TsubasaHanekaw      10 小时 36 分钟前

ntfs 系统有卷影备份.
yrj

yrj      10 小时 35 分钟前

上次看到个帖子,和你一样的想法
zengxs

zengxs      10 小时 34 分钟前   ❤️ 2

git 会把你的文件的每一个版本都保留在他的库里,已有的文件也会在库里保留一份副本,你这么搞过几天你磁盘就爆了(说不定不用几天,你磁盘占用已经超过一半的话,第一次执行 git add 的时候就爆了
colodes

colodes      10 小时 32 分钟前 via Android

ostree 、不可变发行版了解一下
duke807

duke807      10 小时 29 分钟前 via Android

我朋友一直用 git 备份 gentoo 系统的 /etc 目录
Leon6868

Leon6868      10 小时 27 分钟前

@realpg 多少钱一块
yolee599

yolee599      10 小时 3 分钟前 via Android

git 对二进制文件好像是完整拷贝保存的?改动一个字节就得复制一份,这就需要很大的磁盘空间了,电脑备份这种场景要差分保存才合理
0o0O0o0O0o

0o0O0o0O0o      10 小时 0 分钟前 via iPhone

Linux 很多用 git 管理 dotfiles 的

borgbackup 的逻辑也很像 git
superchijinpeng

superchijinpeng      9 小时 56 分钟前

你有多大的磁盘?备份 / 感觉几十 T 也不够
1145148964

1145148964      9 小时 54 分钟前

git 在图像和文档这种上性能很差。
mingwiki

mingwiki      9 小时 53 分钟前

git 冗余太可怕了,也就管理代码之类的文本文件还可以。系统里那么多媒体资源和二进制文件,理论上不能可能用 git ,究极拉跨。搞个 raid 或者 rsync 定期备份,不比 git 好一万倍。
PhosphorLin

PhosphorLin      9 小时 46 分钟前

ostree 了解一下
BeautifulSoap

BeautifulSoap      9 小时 33 分钟前 via Android

lz 你应该实际尝试下用 git 管理一个软件版本(比如浏览器,qq 或者游戏之类的)
然后你就会发现这个想法有多不切实际
RoccoShi

RoccoShi      9 小时 32 分钟前 via Android

建议你先看看 .git 这个文件夹有多大吧
tomyail

tomyail      9 小时 32 分钟前   ❤️ 1

git-annex
xiangbohua

xiangbohua      9 小时 20 分钟前

理论上可行,但是实际上感觉不太行,大文件的处理效率不高,现在动不动就按 T 计算的这个空间,真不知道提交一次得多久。
totoro625

totoro625      9 小时 0 分钟前

试试 Restic: https://github.com/restic/restic 全平台通用
1.备份库是 repo 形式
2.可以指定任意文件夹
3.可以过滤文件夹
4.可以通过脚本自动备份
5.可以 push 到远程服务器
6.自带去重,压缩存储
flexbug

flexbug      8 小时 58 分钟前 via iPhone

请使用专业备份 Acronis True Image
lerry

lerry      8 小时 55 分钟前 via iPhone

clone 过上 g 的代码库,贼慢,不仅仅是网络问题
dif

dif      8 小时 45 分钟前

只会同步重要的东西,一般都不会太大。文字形式的记录到笔记,小文件形式的用 dropbox 或者 onedrive ,大文件上传百度云,愿意花点存储费用的可以考虑对象存储,其实一年不到 100 块。
libook

libook      5 小时 35 分钟前

快照更好用,毕竟是专门用来干备份的。
从 git 的原理来说,遇到二进制文件就比较浪费资源。
不过我用过 git 管理过一些游戏存档的版本,随时 checkout 到各个提交的节点还比较方便。
bjzhush

bjzhush      5 小时 33 分钟前

双倍存储的代价
dnsaq

dnsaq      5 小时 30 分钟前 via iPhone

大文件得 Git LFS ,原理是这么个原理,应该有专注于这方面的软件,咱也没用过,比如 nextcloud 这类也是有版本管理的。
Ib3b

Ib3b      5 小时 29 分钟前

git 是针对文本文件的版本管理,二进制内容不行的
mww

mww      5 小时 21 分钟前

mac 时间机器🐶
lynan

lynan      5 小时 16 分钟前

我个人的感觉是备份软件数据(并且可以在恢复后正常接续)才合理。
zedpass

zedpass      4 小时 53 分钟前

你不考虑效率、成本问题吗。。。对于数据备份需求,有 N 多更专业的方式,使用 win/mac 自带的系统备份、使用 RAID 、买一个 NAS 备份、虚拟机打快照、使用 btrfs 文件系统,每一种都比用 git 备份更加高效和可靠
DiePro

DiePro      4 小时 46 分钟前

以前听说美国工程师电脑被抢了,换台电脑登录 Onedrive 就可以继续了,完全不用担心文件丢失,不知真假
chiu

chiu      3 小时 33 分钟前 via iPhone

我 dotfile 就是这么备份的
GeruzoniAnsasu

GeruzoniAnsasu      3 小时 29 分钟前

不可行。

我接手过一个嵌入式项目,2.6 内核,一整套源码都放进 git 里统一管理,一套源码几个 g 大。

git status

卡几十秒


FYI
mmdsun

mmdsun      58 分钟前

我说,有没有可能是 Windows 自带 “git”呢?

管理员权限:
#相当于 git init :
Enable-ComputerRestore -drive "c:\"

#相当于 git commit
Checkpoint-Computer -description "first commit" -restorepointtype "MODIFY_SETTINGS"

# 相当于 git log 历史记录
Get-ComputerRestorePoint
flyqie

flyqie      54 分钟前

思路可以,但 git 不行。。
Easedge

Easedge      52 分钟前

nixos 完美符合 git 要求
ltkun

ltkun      4 分钟前 via Android

@DiePro 不用听说 这个中国也行 电脑就是个终端 任何文件都存在远程

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK