Time Machine-style Backups with rsync (2018)

(samuelhewitt.com)

29 points | by accrual 2 hours ago

6 comments

  • nightshift1 1 hour ago
    Seems similar to https://rsnapshot.org/
    • kunjanshah 56 minutes ago
      This is the more robust way to go. Uses rsync under the hood.
  • orev 1 hour ago
    The original post that introduced this idea into general public: http://www.mikerubel.org/computers/rsync_snapshots/

    I’m sure others will chime in that they used hard links like this before then, however as noted in that page, it’s the one that made it popular enough that rsync was updated to support the idea natively.

  • nine_k 1 hour ago
    If we spoke about a Linux box, one that prudently ran ZFS, or XFS on top of LVM, it would be possible to make a snapshot before the diffing and sending, so that the snapshot would be indeed point-in-time. IDK if whatever macOS uses for the filesystem supports snapshots.

    Otherwise, I think, restic or kopia are better for proper backups, and Syncthing for keeping a mirror copy. But the simplicity of this script in charming.

  • hughc 1 hour ago
    I've been using a bash encapsulation of this for a long time, works great.

    https://github.com/laurent22/rsync-time-backup

  • mrtesthah 1 hour ago
    Isn’t restic better for backups overall?

    Anyone have a good script for macOS triggered by launchd, ideally something that uses FSEvents to check for directory changes?

    • crossroadsguy 51 minutes ago
      Yes, it is; among a few other great cross-platform FOSS tools that are built just for backups, and they do it really well. But most of them do periodic scans (as opposed to file change trigger-based backup runs, which I guess is what you might be looking for, I assume by your second sentence).
  • EGreg 56 minutes ago
    Why make hard links when you can use rsync or syncthing to just make an actual copy on an external hard drive eg via wifi or just remotely?
    • kej 37 minutes ago
      The hard links are to the most recent backup before the one happening now in the script, so that you aren't storing full copies of files that haven't changed between backups.