I updated my python script to run a daemon process for each machine to keep them awake during backup, it is relatively short so I'm including it here, on the off-chance that it proves helpful to anyone--I'm happy to answer any questions about it. It is dependent on a library daemon.py (note: not the pending daemon PEP), that I downloaded here:
Note that the script does require your host->MAC address mapping, since the machines may be down, you can't just ARP for them (I use a python dictionary, but this could be extended to a db for those with larger sites--especially if you already track MAC addresses). To make a Windows machine do WoL, you likely will have to both configure WoL in the BIOS and also make a config change in windows on the LAN interface to enable WoL.
Here's how I use my script in my bacula-dir.conf:
RunBeforeJob = "/etc/bacula/wake_up.py --daemon start %c"
RunAfterJob = "/etc/bacula/wake_up.py --daemon stop %c"
I don't recall if this assumes that the hostname and the client name are the same, I suspect it does.
-se
--
They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
--Benjamin Franklin, 1759