Chronosync backup when drive plugged in with applescript

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

2 thoughts on “Chronosync backup when drive plugged in with applescript

  1. simon

    If you schedule ya backup in chronosync then under times there is a when a vlume mounts option. Left or Right target.

    Ie plug in external.. being the right target. It runs a backup.

    Just need a script to then eject post sync

    Reply
    1. Sandy Milne Post author

      Hi Simon,

      The script should eject the the drive when it’s finished but you can also go to “Options” on your right target and select “Eject Media after Synchronization” which will also eject an image or un-mountable drive when it’s done. If you’re using a container then you just need to make sure the last synchronizer has the “Eject Media after Synchronization” set.

      Cheers,
      Sandy

      Reply

Leave a Reply to simon Cancel reply

Your email address will not be published. Required fields are marked *


*