Firstly excuse the extremely uncreative title of this post but I have been working all day and my creativity levels are a little on the uncreative side at this stage of the day.
At the studios we have couple of different backup systems running to DLT and LTO tapes plus some offsite drives that we use for disaster recovery. After struggling with massive issues with the latest version of retrospect for mac and the horrible support we decided to move to Chronosync which has been fantastic.
One thing that we wanted to do was automatically run a backup when we connected a particular offsite backup drive. I managed to get this to work by running an applescript in automater whenever a new drive was added using folder actions.
When new drives are added to OSX they are mounted in the /Volumes folder which you can’t normally access in finder. To get around this you can create a symlink in the terminal by typing:
ln -s /Volumes/ ~/vol-link
this will create a link named “vol-link” in your home folder that points to the Volumes folder.
Then open automater in the applications folder and chose “folder action” from the start up screen
On the top you can choose the folder that will perform an action if a file or folder is added to it.
In here choose your vol-link.
Drag across the “Run AppleScript” action form the left and then add the AppleScript code from below
Note that you will have to change the volume names and path of your Chronosync container document and you can modify this script to work with more drives or less.
Save your workflow and that’s it.
We also have our backups stored in an encrypted disk image so have set the last document in the container to eject the image when it’s finished. The script then ejects the drive
Any questions or comments let me know
set VolumeName1 to "OffsiteBackUP1"
set VolumeName2 to "OffsiteBackUP2"
if volumeMounted(VolumeName1) = 1 then
try
tell application "ChronoSync"
activate
open alias "HD RAID:Users:serverhomedir:Documents:Offsite Backup 2.csyn"
tell document 1 to Synchronize
--hold on 'till the sync is complete
repeat while syncStatus of document 1 is not 0
end repeat
tell document 1 to save
tell document 1 to close
end tell
end try
delay (5)
tell application "Finder"
activate
eject disk VolumeName1
end tell
else
if volumeMounted(VolumeName2) = 1 then
try
tell application "ChronoSync"
activate
open alias "HD RAID:Users:serverhomedir:Documents:Chronosync Offsite Scripts:Offsite Backups.csyn"
tell document 1 to Synchronize
--hold on 'till the sync is complete
repeat while syncStatus of document 1 is not 0
end repeat
tell document 1 to save
tell document 1 to close
end tell
end try
delay (5)
tell application "Finder"
activate
eject disk "VolumeName2"
end tell
end if
end if
on volumeMounted(VolumeName)
tell application "Finder"
if (exists disk VolumeName) then
return 1
else
return 0
end if
end tell
end volumeMounted