V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
289396212
V2EX  ›  程序员

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

  •  
  •   289396212 · 318 天前 · 5813 次点击
    这是一个创建于 318 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设有系统备份的需求,大家有没有想过,无论 win/mac/linux 系统的电脑,在根目录下 git init ,把整个磁盘作为一个 repo ,可以写个脚本每天自动 git commit,然后 push ,备份系统
    61 条回复    2023-06-15 13:54:42 +08:00
    nicreve
        1
    nicreve  
       318 天前
    就算用 Git LFS ,空间占用和性能估计也很差。
    zgqq
        2
    zgqq  
       318 天前
    快照应该比你这种方式好 10 倍吧
    crayygy
        3
    crayygy  
       318 天前
    可以试试看,不需要用 root folder 测试,找一个有大量小文件并且会经常有 change 的目录,然后就知道 git 不是用来干这个事情的了。
    kaiger
        4
    kaiger  
       318 天前   ❤️ 1
    git 备份一些配置文件是极好的

    git --work-tree=$HOME --git-dir=$HOME/.dotfiles.git
    aptupdate
        5
    aptupdate  
       318 天前
    理论上应该可以,不过得考虑到空间占用和性能问题。。。
    但是为啥要用 git 呢,传到 GitHub 上?
    备份系统有更好的方案,哪怕是把备份出来的快照传到 git 上。
    cheng6563
        6
    cheng6563  
       318 天前
    不如 svn
    xiangyuecn
        7
    xiangyuecn  
       318 天前
    你猜会不会有奇怪的目录 和 文件
    deplivesb
        8
    deplivesb  
       318 天前
    git 对大量的小文件的性能是很差的
    realpg
        9
    realpg  
       318 天前
    我这有 80 块 18T 硬盘 你要不要买点?估计一年就差不多了
    HannibaI
        10
    HannibaI  
       318 天前
    XY
    yinmin
        11
    yinmin  
       318 天前
    windows 最简单的备份是用“文件历史记录”,Mac 最简单的备份是用“时间机器”,可以配置成每小时差异备份一次,将文件备份给另外一台机器的共享目录上。
    LindsayZhou
        12
    LindsayZhou  
       318 天前
    我 pull 过 linux kernel 的代码,也自己做过它的镜像,从这个经验来说,绝对不值得。

    要实现类似的增量备份和回滚,推荐 restic
    TsubasaHanekaw
        13
    TsubasaHanekaw  
       318 天前
    ntfs 系统有卷影备份.
    yrj
        14
    yrj  
       318 天前
    上次看到个帖子,和你一样的想法
    zengxs
        15
    zengxs  
       318 天前   ❤️ 4
    git 会把你的文件的每一个版本都保留在他的库里,已有的文件也会在库里保留一份副本,你这么搞过几天你磁盘就爆了(说不定不用几天,你磁盘占用已经超过一半的话,第一次执行 git add 的时候就爆了
    colodes
        16
    colodes  
       318 天前 via Android
    ostree 、不可变发行版了解一下
    duke807
        17
    duke807  
       318 天前 via Android
    我朋友一直用 git 备份 gentoo 系统的 /etc 目录
    Leon6868
        18
    Leon6868  
       318 天前
    @realpg 多少钱一块
    yolee599
        19
    yolee599  
       318 天前 via Android
    git 对二进制文件好像是完整拷贝保存的?改动一个字节就得复制一份,这就需要很大的磁盘空间了,电脑备份这种场景要差分保存才合理
    0o0O0o0O0o
        20
    0o0O0o0O0o  
       318 天前 via iPhone
    Linux 很多用 git 管理 dotfiles 的

    borgbackup 的逻辑也很像 git
    superchijinpeng
        21
    superchijinpeng  
       318 天前
    你有多大的磁盘?备份 / 感觉几十 T 也不够
    1145148964
        22
    1145148964  
       318 天前
    git 在图像和文档这种上性能很差。
    mingwiki
        23
    mingwiki  
       318 天前
    git 冗余太可怕了,也就管理代码之类的文本文件还可以。系统里那么多媒体资源和二进制文件,理论上不能可能用 git ,究极拉跨。搞个 raid 或者 rsync 定期备份,不比 git 好一万倍。
    PhosphorLin
        24
    PhosphorLin  
       318 天前
    ostree 了解一下
    BeautifulSoap
        25
    BeautifulSoap  
       318 天前 via Android
    lz 你应该实际尝试下用 git 管理一个软件版本(比如浏览器,qq 或者游戏之类的)
    然后你就会发现这个想法有多不切实际
    RoccoShi
        26
    RoccoShi  
       318 天前 via Android
    建议你先看看 .git 这个文件夹有多大吧
    tomyail
        27
    tomyail  
       318 天前   ❤️ 1
    git-annex
    xiangbohua
        28
    xiangbohua  
       318 天前
    理论上可行,但是实际上感觉不太行,大文件的处理效率不高,现在动不动就按 T 计算的这个空间,真不知道提交一次得多久。
    totoro625
        29
    totoro625  
       318 天前
    试试 Restic: https://github.com/restic/restic 全平台通用
    1.备份库是 repo 形式
    2.可以指定任意文件夹
    3.可以过滤文件夹
    4.可以通过脚本自动备份
    5.可以 push 到远程服务器
    6.自带去重,压缩存储
    flexbug
        30
    flexbug  
       318 天前 via iPhone
    请使用专业备份 Acronis True Image
    lerry
        31
    lerry  
       318 天前 via iPhone
    clone 过上 g 的代码库,贼慢,不仅仅是网络问题
    dif
        32
    dif  
       318 天前
    只会同步重要的东西,一般都不会太大。文字形式的记录到笔记,小文件形式的用 dropbox 或者 onedrive ,大文件上传百度云,愿意花点存储费用的可以考虑对象存储,其实一年不到 100 块。
    libook
        33
    libook  
       318 天前
    快照更好用,毕竟是专门用来干备份的。
    从 git 的原理来说,遇到二进制文件就比较浪费资源。
    不过我用过 git 管理过一些游戏存档的版本,随时 checkout 到各个提交的节点还比较方便。
    bjzhush
        34
    bjzhush  
       318 天前
    双倍存储的代价
    dnsaq
        35
    dnsaq  
       318 天前 via iPhone
    大文件得 Git LFS ,原理是这么个原理,应该有专注于这方面的软件,咱也没用过,比如 nextcloud 这类也是有版本管理的。
    Ib3b
        36
    Ib3b  
       318 天前
    git 是针对文本文件的版本管理,二进制内容不行的
    mww
        37
    mww  
       318 天前
    mac 时间机器🐶
    lynan
        38
    lynan  
       318 天前
    我个人的感觉是备份软件数据(并且可以在恢复后正常接续)才合理。
    zedpass
        39
    zedpass  
       318 天前
    你不考虑效率、成本问题吗。。。对于数据备份需求,有 N 多更专业的方式,使用 win/mac 自带的系统备份、使用 RAID 、买一个 NAS 备份、虚拟机打快照、使用 btrfs 文件系统,每一种都比用 git 备份更加高效和可靠
    DiePro
        40
    DiePro  
       318 天前
    以前听说美国工程师电脑被抢了,换台电脑登录 Onedrive 就可以继续了,完全不用担心文件丢失,不知真假
    chiu
        41
    chiu  
       318 天前 via iPhone
    我 dotfile 就是这么备份的
    GeruzoniAnsasu
        42
    GeruzoniAnsasu  
       318 天前
    不可行。

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

    git status

    卡几十秒


    FYI
    mmdsun
        43
    mmdsun  
       318 天前
    我说,有没有可能是 Windows 自带 “git”呢?

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

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

    # 相当于 git log 历史记录
    Get-ComputerRestorePoint
    flyqie
        44
    flyqie  
       318 天前
    思路可以,但 git 不行。。
    Easedge
        45
    Easedge  
       318 天前
    nixos 完美符合 git 要求
    ltkun
        46
    ltkun  
       318 天前 via Android
    @DiePro 不用听说 这个中国也行 电脑就是个终端 任何文件都存在远程
    MoeMoesakura
        47
    MoeMoesakura  
       318 天前
    git 我曾经对着一个数千文档的目录试过,卡了数分钟。。。

    所以考虑 rsync ,或者让 tar 回归其初心( Tape Archiver )
    gransh
        48
    gransh  
       318 天前
    windows 有个功能叫系统保护,可以创建还原点
    chesha1
        49
    chesha1  
       318 天前
    git 的性能又不好,那你不如用一个公网网盘开自动备份,容量又大速度又快

    我自己就是这么做的,不过没有把根目录全部备份,只有自己的工作文件夹备份了,onedrive 的速度很快,能有 100MB/s ,而且在 Windows 下面直接直接无感当成本地目录用
    hxy100
        50
    hxy100  
       318 天前
    git 是专为纯文本文件的版本历史记录而设计的,面对二进制文件,他虽然勉强能用,但是很坑,弊大于利
    xylxAdai
        51
    xylxAdai  
       318 天前
    每天备份的意义在哪儿?而且了解一下 git 原理的都说不出这种话。。
    leokun
        52
    leokun  
       318 天前
    我玩 GTA5 mod 的时候试过这方法,非常慢,而且占用空间非常大
    tin3w5
        53
    tin3w5  
       318 天前 via iPhone
    @DiePro 是的,之前的公司都有搞过。文件可能不是最新的,但是一周之内的内容肯定是会备份到 onedrive 的。
    而且文档要么在 Google doc/Sharepoint 上,要么在 confluence 上,代码都在 git 里,各种账单、财务、流程……都在公司内部服务器上,几乎除了一些个性化配置,大多数数据也不会存在公司电脑上。
    tril
        54
    tril  
       318 天前
    这种备份需求有现成的解决方案,比如群晖的 active backup for business 。你要是喜欢每小时备份都行,反正是增量备份,还带版本控制。
    moonjourney
        55
    moonjourney  
       317 天前
    nixos 系统文件都被 git 管理,纯文本不到 1M
    lucifer9
        56
    lucifer9  
       317 天前
    配置文件可以考虑用 gnu stow + git
    其他大的二进制文件还是算了吧
    wccc
        57
    wccc  
       317 天前
    linux desktop Btrfs Timeshift
    lvlvforever
        58
    lvlvforever  
       317 天前
    范围缩小点。
    我用云服务器+git 脚本来备份自己的 doc 文件,实现随时随地访问。
    有 windows 、linux 、mac 上的脚本,后续计划写一个应用程序。
    限制是主要是文档类的,音视频的老老实实用各种云盘备份。
    deorth
        59
    deorth  
       317 天前 via Android
    您是不是在找:文件系统快照
    DiePro
        60
    DiePro  
       317 天前
    @ltkun 太久了,都忘了自己电脑有 onedrive ,以前设置不启动的
    昨天回复完帖子就去打开 onedrive ,文件全自动同步了,公司的电脑。。。
    coolfan
        61
    coolfan  
       317 天前
    🤣换成 btrfs 文件系统,可以每小时打一次快照,很低的额外存储占用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   947 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 19:29 · PVG 03:29 · LAX 12:29 · JFK 15:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.