A developers guide to Time Machine exclusions

WARNING: This is a strongly opinionated guide for what files *I* believe aren’t worth making it into my Time Machine backups.

But first, some context. If you just want to see what I exclude, jump to the bottom.

Who am I?

I’m a Developer, technical trainer and writer. As a Developer, I download an extraordinary large amount of “stuff” (e.g. Docker image layers) that I really don’t need backed up. I wanted to share what I exclude in the hope it might save other Developers some backup time (taken) and disk space.

Why bother to exclude files? Disk space is cheap right?

Yes, but developers tend to accumulate a lot of files on our machine. It’s not just the eventual size, but the number of files that is often problematic.

More files translates into more IO operations which causes backups to take longer than they sometimes should.

Ok, it’s a efficiency thing?

For me, it’s a values thing.

When I use something, I strive to only consume what I need until the law of diminishing returns indicates additional effort is not worth it . It’s not an exact science, but something I do my best at.

I try to live by fundamentals which as much as possible, hold true in all situations and contexts. Life for me is simpler that way.

The goal then, is the most efficient backup routine possible

As my files will be backed up hundreds of times a year, I only want Time Machine to backup what I truly would “need” in case of a hard drive failure.

How to define “need”?

For me, “need” means.

Files that would only be on my machine at the time of failure that I cannot download or re-produce from an external source in the future.

It’s vital that you consider what “need” means to you. For perhaps you have a 10TB Hard Drive and backing up your Dropbox folder is “needed” for you.

And that’s fine! Nothing wrong with that at all. It’s your stuff.

The most important thing (and the point of this entire article, really) is that you’ve thought about what you need to backup and what you don’t.

How to exclude files from a Time Machine backup?

It’s really easy and Apple has you covered with a how-to guide.

What I exclude from my Time Machine backups

MacOS

~/.Trash
 ~/Applications
 ~/Downloads
 ~/Desktop

Dev files
 ~/Source (source code, experiments, Github playground etc)

Dev downloaded artefacts

~/Library/Containers/com.docker.docker
 ~/.virtualenvs
 ~/.gem
 ~/.npm

Virtualisation

~/.VirtualBox
 ~/Parallels
 ~/Applications (Parallels)
 ~/vagrant.d

Summary

Leave a comment if I’ve forgotten something which would apply to most developers or better yet, create a list of your own and link to it.

In any case, hopefully you’ll now look for opportunities to decrease the time and disk space needed for each Time Machine backup.