• 请不要在回答技术问题时复制粘贴 AI 生成的内容
289396212
V2EX  ›  程序员

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

  •  
  •   289396212 · Jun 14, 2023 · 8219 views
    This topic created in 1243 days ago, the information mentioned may be changed or developed.
    假设有系统备份的需求,大家有没有想过,无论 win/mac/linux 系统的电脑,在根目录下 git init ,把整个磁盘作为一个 repo ,可以写个脚本每天自动 git commit,然后 push ,备份系统
    61 replies  •  2023-06-15 13:54:42 +08:00
    nicreve
    nicreve
    Jun 14, 2023
    1
    就算用 Git LFS ,空间占用和性能估计也很差。
    zgqq
    zgqq
    Jun 14, 2023
    2
    快照应该比你这种方式好 10 倍吧
    crayygy
    crayygy
    Jun 14, 2023
    3
    可以试试看,不需要用 root folder 测试,找一个有大量小文件并且会经常有 change 的目录,然后就知道 git 不是用来干这个事情的了。
    kaiger
    kaiger
    Jun 14, 2023❤️1
    4
    git 备份一些配置文件是极好的

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

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

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

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

    git status

    卡几十秒


    FYI
    mmdsun
    mmdsun
    Jun 14, 2023
    43
    我说,有没有可能是 Windows 自带 “git”呢?

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

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

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

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

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