← Back to context

Comment by nathants

10 hours ago

Do something simpler. Backups shouldn’t be complex.

This should be simpler still:

https://github.com/nathants/backup

Index of files stored in git pointing to a remote storage. That sounds exactly like git LFS. Is there any significant difference? In particular in terms of backups.

  • Definitely similar.

    Git LFS is 50k loc, this is 891 loc. There are other differences, but that is the main one.

    I don't want a sophisticated backup system. I want one so simple that it disappears into the background.

    I want to never fear data loss or my ability to restore with broken tools and a new computer while floating on a raft down a river during a thunder storm. This is what we train for.

Is this a joke?

I don't see what value this provides that rsync, tar and `aws s3 cp` (or AWS SDK equivalent) provides.

  • How do you version your rsync backups?

    • I use rsyncs --link-dest

      abridged example:

          rsync --archive --link-dest 2025-06-06 backup_role@backup_host:backup_path/ 2025-06-07/
      
      

      Actual invocation is this huge hairy furball of an rsync command that appears to use every single feature of rsync as I worked on my backup script over the years.

          rsync_cmd = [
            '/usr/bin/rsync',
            '--archive',
            '--numeric-ids',
            '--owner',
            '--delete',
            '--delete-excluded',
            '--no-specials',
            '--no-devices',
            '--filter=merge backup/{backup_host}/filter.composed'.format(**rsync_param),
            '--link-dest={cwd}/backup/{backup_host}/current/{backup_path}'.format(**rsync_param),
            '--rsh=ssh -i {ssh_ident}'.format(**rsync_param),
            '--rsync-path={rsync_path}'.format(**rsync_params),
            '--log-file={cwd}/log/{backup_id}'.format(**rsync_params),
            '{remote_role}@{backup_host}:/{backup_path}'.format(**rsync_params),
            'backup/{backup_host}/work/{backup_path}'.format(**rsync_params) ]

      3 replies →

Uh, who has the money to store backups in AWS?!

  • Support for S3 means you can just have minio server somewhere acting as backup storage (and minio is pretty easy to replicate). I have local S3 on my NAS replicated to cheapo OVH serwer for backup