Scripts
As I've got a seperate backup partition (as I'm sure most of us have), I don't really want this mounting on the desktop all the time.
Is there a way to do a script or something, so that when SD starts it's scheduled backup, it mounts my backup partition, does the backup, and then unmounts it afterwards (and sends my computer to sleep as normal)? |
There are number of suggested scripts and the like that do that elsewhere on the forum, Mark. Have a look around and you should find something to your liking.
|
Thanks Dave.
|
OK, I've had a good look around, and I've played around with some scripts to get one that actually complies ok with no errors.
I thought this one would work, but it doesn't. Can anyone tell me where I've gone wrong? The partition I want to mount is called Backup, and according to Disk Utility it's disk identifier is disk0s5, so I put that into the script... ===== -- SuperDuper! scheduled copy script template (c) 2005-2006 by Bruce Lacey. Published by Shirt Pocket. -- Script by Dave Nanian and Bruce Lacey on beforeRunningCopy() tell application "Finder" if not (exists the disk Backup) then do shell script "diskutil mount `disktool -l | grep 'Backup' | sed 's/.*\\(disk0s5*\\).*/\\1/'`" delay 1 end if end tell delay 2 end beforeRunningCopy on afterRunningCopy() tell application "Finder" if (exists the disk "Backup") then eject "Backup" delay 2 end if end tell delay 2 end afterRunningCopy |
Well, Mark, if you know it's disk0s5 already, and you're basically locking it down to that device ID in your expression, there's no point doing the while disktool -l bit. Instead, to see if it works, just do a mount of disk0s5:
do shell script "diskutil mount disk0s5" |
I've done diskutil mount disk0s5, and diskutil unmount disk0s5 in terminal, and both work perfectly.
However, my script doesn't appear to work (it won't mount Backup if it's not already mounted):- on beforeRunningCopy() tell application "Finder" if not (exists the disk Backup) then do shell script "diskutil mount disk0s5" delay 1 end if end tell delay 2 end beforeRunningCopy on afterRunningCopy() tell application "Finder" if (exists the disk "Backup") then eject "Backup" delay 2 end if end tell delay 2 end afterRunningCopy What am I doing wrong? |
beforeRunningCopy() and afterRunningCopy() are subroutines and subroutines don't run unless you tell them to run in the script.
|
How do I tell them to run in the script?
|
insert a beforeRunningCopy() line where you want that subroutine to run.
|
I'm assuming this script is actually part of your scheduled item, and you didn't delete the rest of it (hopefully). If you did remove the rest, then Cuneyt is right: the script doesn't do anything, because there's nothing calling those routines.
|
I haven't deleted the rest of it, I just pasted the relevant parts here :)
I'll give it a shot now... |
That's what I thought! :)
It might be worthwhile actually running the script outside of SD! (without the SD! parts) to see what it does in a controlled environment. |
OK it still doesn't do anything, as you may have guessed I've no experience whatsoever with scripting!!
How do I modify this so it works:- -- SuperDuper! scheduled copy script template (c) 2005-2006 by Bruce Lacey. Published by Shirt Pocket. -- Script by Dave Nanian and Bruce Lacey on beforeRunningCopy() tell application "Finder" if not (exists the disk Backup) then do shell script "diskutil mount disk0s5" delay 1 end if end tell delay 2 beforeRunningCopy() end beforeRunningCopy on afterRunningCopy() tell application "Finder" if (exists the disk "Backup") then eject "Backup" delay 2 end if end tell delay 2 afterRunningCopy() end afterRunningCopy |
Where do I insert the "beforeRunningCopy()" and "afterRunningCopy()" to ensure they both work?
|
Anybody? :P
|
All times are GMT -4. The time now is 11:43 AM. |
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc.