The short answer is no, but here is why and how the exclusions work when you pick different rules for two accounts.
Whether you have one backup destination or two, the rules for multiple users is to combine the exclusions for each user with the exclusions from the system so that each user can exclude different things, but there is no "inclusion" mechanism to add something back that another user has denied.
There is a nice article on having multiple users and goes into more details on setting up multiple exclusion lists:
It's not going to save backup time or space as you asked, but perhaps drives can get larger and you could just have both drives hold the same content since incremental updates mean that unless a file changes, it only gets copied once to each destination, speeding backups for subsequent backups to each individual drive when it's connected.
Pulling one drive from rotation with two works well as the system just carries on with the drive connected and then when the further out of date drive mounts again, one of the next two backups will catch it up with all changes since it was last mounted during a backup.
Well, I cracked it, it wasn't loginHooks I needed, but launchctl.
Basically, create two scripts (executable of course, you can make em root only too):
User1.sh
!/bin/bash ifconfig en0 up; ifconfig en1
down;
User2.sh
!/bin/bash ifconfig en1 up; ifconfig en0
down;
These of course make the assumption you're using an imac, en0 is the enthernet, en1 is the WiFi.
Then create a plist file (with root ownership, 644), mine was this:
User1's went in /Users/user1/Library/LaunchAgents/org.user1.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.user1.plist</string>
<key>ProgramArguments</key>
<array>
<string>/Users/user1/bin/User1.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
User2's in /Users/user2/Library/LaunchAgents/org.user2.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.user2.plist</string>
<key>ProgramArguments</key>
<array>
<string>/Users/user2/bin/User2.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
After that run
sudo launchctl load -w
/Users/user1/Library/LaunchAgents/org.user1.plist
and
sudo launchctl load -w
/Users/user2/Library/LaunchAgents/org.user2.plist
as each user.
That's it, it's quick, simple, and if you set the owner of the scripts as someone else (and on another path), it's fairly secure (not bulletproof, but that's not in my scope at the moment).
Best Answer
The best way is to continue to use
rsync
so as to maintain/destination
synchronized with/source
.1st run:
next runs:
The
-a
option =--archive
==-rlptgoD
.The
-E
option means copy extended attributes and ACL, and is mandatory on HFS+ filesystems.Warning: the standard version of
rsync
on OS X, version 2.6.9 (seersync --version
) still have problems with extended attributes. These problems will be shown thanks to the-v
option.A verification of the output of
rsync
is mandatory.This version 2.6.9 is too old and causing too many problems.
I advise any user willing to maintain in sync directories between different Macs (or between a Mac and another Unix machine) to install
rsync
version 3.1.2.Here is the method I use:
install MacPorts: MacPorts home page
Xcode
Upgrade your PATH so as to find the
port
command in it for example, I installed it in/local/bin
and modified my PATH like this:Install
rsync 3.1.2
:With this version of
rsync
, the right options to use will be:and if you read me thus far, you are pretty good enough now to read
to get the light from the source.