PDA

View Full Version : Before-Copy script failure


Sophie
12-08-2009, 12:36 AM
I have this as my "quit_vmware.sh", set to "Run before copy":
#!/bin/sh
osascript -e 'tell application "VMWare Fusion" to quit'
------------

The scheduled backup worked fine with VMWare 2.x.

A couple of days I upgraded to VMWare 3.0. Now my backup stops at the Run-before-copy stage, although the quit_vmware script runs and successfully shuts down VMWare. The SD log shows:

| 10:04:41 PM | Info | ...ACTION: Running shell script quit_vmware.sh
| 10:04:41 PM | Info | ......COMMAND => Invoking Before Copy shell script: /Users/s/Library/Scripts/quit_vmware.sh
| 10:04:41 PM | Error | file:///System/Library/ScriptingDefinitions/CocoaStandard.sdef:2: I/O warning : failed to load external entity "file://localhost/System/Library/DTDs/sdef.dtd"
| 10:04:41 PM | Error | <!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
| 10:04:41 PM | Error |
-------------
When I run the script from Terminal, I see this:
>> ./quit_vmware.sh
file:///System/Library/ScriptingDefinitions/CocoaStandard.sdef:2: I/O warning : failed to load external entity "file://localhost/System/Library/DTDs/sdef.dtd"
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
^
>> echo $?
0
------------
So, VMWare seems to be printing out some message (no idea what it means), but, importantly, seems to exit with a "Success" code of 0.

Am I reading this correctly? Should SD be aborting the backup if the exit code of the script is "0"?

Thanks!

p.s. strange thing, running the script even with VMWare Fusion not running still gives exactly the same result, both in Terminal and in SD.

dnanian
12-08-2009, 01:25 AM
You really need to restore that missing system file, Sophie.

/System/Library/DTDs/sdef.dtd"

That's the general problem here.

Sophie
12-08-2009, 11:12 AM
From a quick google, that file is present in Tiger but not in Leopard. I will check some more ...

But could you let me know (a) if I was reading the exit code of "0" correctly, and (b) if SD should be aborting the backup if the script exit code is "0"?

Thanks

dnanian
12-08-2009, 12:55 PM
It's present on all my Macs, including some that shipped with Snow Leopard.

SD!'s going to abort if there's output on stderr...

Sophie
12-08-2009, 02:21 PM
Ah, ok, thank you for checking! I checked and one of my Macs has it, the other does not. No idea why.

Anyway, I switched to using a VMWare utility called "vmrun" (instead of the osascript approach) which lets me do start, stop, suspend, etc. on specific VMWare images. It's probably a better way to manipulate VMWare and it appears to work so I'll stick with that. That script (in case is helps someone else) is:
#!/bin/sh
/Library/Application\ Support/VMware\ Fusion/vmrun -T fusion stop /path/to/vmware_image.vmx