I have three macs—two that are primary, and one laptop that I don’t use as often. I have an iMac at work, and a Mac mini at home. They are set up virtually identical since I work from home at times. All files sync via iCloud and I have not experienced any trouble with it.
I have Hazel installed on both and the rules sync between the two. As I conduct my workflow, no matter which Mac I’m on, everything works as expected with Hazel noticing files and doing the things I want. Mostly, I think it works because Hazel is faster than iCloud sync and hence processes the files before iCloud has a chance to sync them.
I haven’t seen any issues with Hazel on two computers essentially looking at the same folders. But what I’m really wondering is if this is the proper way to keep my workflows the same? Or should I be deeming one of the computers the master and having it run Hazel rules etc, then let iCloud sync the results?
I’m sure I’m not the first to ponder this question—what have others done/preferred?
I think you are probably correct that the reason that things have been working for you is that Hazel is handling things faster than the iCloud sync.
I ran into some issues with having the same rules on multiple computers, however. Here is an example: I had a Hazel rule that would notice any new file added and append the file creation date to the beginning of the filename. The problem was that I would create the file on one computer, and Hazel would change the filename for me. Then the file would get sync’d to the other compute where Hazel would add another creation date string onto that filename, so every file wound up with two dates in its name. (If you change the rule such that Hazel triggers when the file is modified, it will keep noticing the filename has changed, add another date to the filename, which when it syncs to the other computer will cause another modification trigger… and so on.)
I found that in the end, the best thing to do was to have nearly all rules running on my desktop. I use ResilioSync, and for the most part it is fast enough that if I do something on my laptop, it will sync to the desktop where the rule will run and the propagate back to the laptop in nearly real time, so this has worked well for me and avoided such conflicts.
Obviously I have rules on the laptop as well, but they execute only on non-shared folders.
I think it’s clear that there is potential for danger / damage that might happen too quickly to even be noticed, so you should avoid that.
I have 5 Macs that I use on a regular basis, although one is the one I use most often [a 2018 MacBook Air].
I designated one of my always-on desktop Macs to be the one which does all the “heavy-lifting and sorting” with Hazel, and the others “feed” that Mac. [This is my MacStadium machine, but it could be any always-on Mac.]
So, for example, I have a ~/Dropbox/Actions/ folder that syncs between all my Macs, but my MacStadium has Hazel rules setup to look for files in ~/Dropbox/Actions/ and process them.
(You could do the same thing with iCloud Drive… just make an “Actions” folder in it, etc.)
If an app is capable of doing backups of its data (such as BusyCal or BusyContacts), I tell the app to save the backups to ~/Dropbox/Actions/.
If I have scripts or other processes that generate files that I want to keep/sort, I have them saved to ~/Dropbox/Actions/.
You can get the idea.
While I know that Hazel can sync its rules (and I use that… but mostly as a backup), I like having one machine that is “the Hazel Mac” because if anything goes awry, I know where to look. If I need to test something, I can test it on one Mac. If I need to pause filtering, I only have to pause Hazel on one Mac. If I need to install some tool or utility to do a special function, I only need to do it on one Mac.
So I’m firmly in the “pick one” camp. Have your Hazel rules sync somewhere so if that Mac ever explodes, you can reload the rules on a different Mac, but otherwise, don’t point 3 guns at the same target. Someone’s bound to get caught in the crossfire.
Having Hazel on two computers processing files in a single shared folder seems to be just asking for trouble.
If you have to do this, it would be much safer to have one computer’s Hazel rules do its thing but also copy the file to a second folder where the second computer monitors and processes. Repeat if more than two computers. You can also do this using tags.
However the best approach is what others have suggested, have a main computer (always on) that does the primary work.
If you have an always on Mac going the “hazel computer” way and having only one machine processing the rules is the way to go.
I have two laptops, neither of which is always on, and I get by having the same rules on both, with some delay in the processing (“date added is not in the last 5 min” or so), and have had no issue so far
I use Hazel on three Macs. One of the folders that I have rules running on is in Dropbox and syncs to all three systems. My mini is an always on system and that one handles the Hazel rules for that particular folder. This has worked practically flawlessly for me.
I previously had the rules for that folder processing on multiple systems and when I was doing that I would get some errors where both systems tried to process the same file, but the file was already moved or renamed by the time the second system got to that step in the action.