Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Rsync Time Backup | 2,851 | 3 months ago | 1 | March 03, 2021 | 101 | Shell | ||||
Time Machine style backup with rsync. | ||||||||||
Backintime | 1,590 | 3 days ago | 200 | gpl-2.0 | Python | |||||
Back In Time - A simple backup tool for Linux | ||||||||||
Asimov | 1,209 | 3 months ago | 1 | March 03, 2021 | 34 | mit | PHP | |||
Automatically exclude development dependencies from Apple Time Machine backups | ||||||||||
Acnh Bcats | 186 | 2 years ago | ||||||||
Animal Crossing New Horizons BCAT Events | ||||||||||
Gbm | 178 | 13 days ago | 2 | gpl-3.0 | Visual Basic .NET | |||||
Game Backup Monitor - Automatically backup your saved games! | ||||||||||
Timedog | 173 | 2 years ago | 1 | February 27, 2018 | 8 | gpl-2.0 | Python | |||
Displays set of files that were saved in Time Machine backups | ||||||||||
Raspberrypi Timemachine | 161 | 5 years ago | 1 | mit | ||||||
Apple Time Machine with raspberry Pi | ||||||||||
Rsync Time Machine | 92 | 3 years ago | 1 | gpl-2.0 | Python | |||||
Time Machine Style backup using rsync | ||||||||||
Time Machine Sparce Bundle Fix | 68 | 9 years ago | 1 | Shell | ||||||
Time Machine Sparsebundle Fix | ||||||||||
Ia.bak | 61 | 3 years ago | 15 | gpl-3.0 | Shell | |||||
We back up a lot of stuff from around the web; now it's time to back up the Internet Archive, just in case. |
Those people who think they know everything are a great annoyance to those of us who do.
— Issac Asimov
For macOS users, Time Machine is a no-frills, set-it-and-forget-it solution for on-site backups. Plug in an external hard drive (or configure a network storage drive), and your Mac's files are backed up.
For the average consumer, Time Machine is an excellent choice, especially considering many Mac owners may only have Time Machine as a backup strategy. For developers, however, Time Machine presents a problem: how do I keep project dependencies from taking up space on my Time Machine drive?
Asimov aims to solve that problem, scanning your filesystem for known dependency directories (e.g. node_modules/
living adjacent to a package.json
file) and excluding them from Time Machine backups. After all, why eat up space on your backup drive for something you could easily restore via npm install
?
Asimov may be installed in a few different ways:
The easiest way to install Asimov is through Homebrew:
$ brew install asimov
If you would prefer to use the latest development release, you may append the --head
flag:
$ brew install asimov --head
Once installed, you may instruct Homebrew to automatically load the scheduled job, ensuring Asimov is being run automatically every day:
$ sudo brew services start asimov
If you don't need or want the scheduled job, you may run Asimov on-demand:
$ asimov
If you would prefer to install Asimov manually, you can do so by cloning the repository (or downloading and extracting an archive of the source) anywhere on your Mac:
$ git clone https://github.com/stevegrunwell/asimov.git --depth 1
After you've cloned the repository, run the install.sh
script to automatically:
/usr/local/bin
, making it readily available from anywhere.At its essence, Asimov is a simple wrapper around Apple's tmutil
program, which provides more granular control over Time Machine.
Asimov finds recognized dependency directories, verifies that the corresponding dependency file exists and, if so, tells Time Machine not to worry about backing up the dependency directory.
Don't worry about running it multiple times, either. Asimov is smart enough to see if a directory has already been marked for exclusion.
If you'd like to see all of the directories and files that have been excluded from Time Machine, you can do so by running the following command (props Brant Bobby on StackOverflow):
$ sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"
If a directory has been excluded from backups in error, you can remove the exclusion using tmutil
:
$ tmutil removeexclusion /path/to/directory