Aquí es otra opción para la gente tratando de hacer esto.
En lugar de ejecutar un comando cada 5 minutos, puede ejecutar cada vez que la carpeta /Library/Preferences/SystemConfiguration/
cambios. Generalmente, esto ocurre sólo cuando hay algún tipo de cambio en la red.
Usted puede hacer esto mediante Lingon o hacer su propio launchd plist que sería algo como esto:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AbandonProcessGroup</key>
<true/>
<key>Label</key>
<string>localhost.on_networkchange</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/your/script.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WatchPaths</key>
<array>
<string>/Library/Preferences/SystemConfiguration/</string>
</array>
</dict>
Obviamente, usted quiere reemplazar /path/to/your/script.sh
a la ruta real.
Tenga en cuenta que puede que tenga que incluir un "sleep 10" cerca del inicio de la secuencia de comandos para dar el Mac una oportunidad para hacer todas sus ajustes después de un cambio de la red que ha sucedido.
También, la manera más fácil para obtener el nombre (SSID) de la red del Aeropuerto que está conectado:
airport -I | awk -F': ' '/ SSID/{print $NF}'
El airport
comando se puede encontrar en /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
, en un 10,8 (y creo 10.7 y 10.6)
Yo generalmente enlace a /usr/local/bin:
ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
puede que necesite sudo
ese comando, dependiendo de cómo su /usr/local/bin/ es de la instalación.
Por último, pero no menos importante, es necesario considerar qué hacer cuando usted pone su computadora portátil para dormir. Por ejemplo, si usted está en la oficina de 9 a 5 y el sueño de su computadora portátil en el 5, que desea grabar que demasiado, ¿verdad? De lo contrario, ¿cómo se sabe cuando te fuiste?
Para que os recomiendo SleepWatcher 2.2, que está disponible a partir de http://www.bernhard-baehr.de (libre, de código fuente incluido). Que te permitirá ejecutar una secuencia de comandos de shell cada vez que el Mac se despierta o se duerme.
La única otra consideración es qué hacer si la sesión o apagar el equipo, en lugar de dormir. No tengo una buena respuesta para eso. Teóricamente un LogoutHook sería la respuesta, pero esos parecen poco fiables, especialmente en el cierre vs cerrar la sesión.
Algo completamente diferente sugerencia
Usted ha dicho que usted tiene un dispositivo iOS. Tal vez una manera de resolver este problema sería crear un Recordatorio para cuando usted Llegue o salga del trabajo. Cuando se apague el recordatorio, gatillo Siri y dicen que "Recordar salí del trabajo a las 5 de la tarde" o "Acuérdate de llegar al trabajo a las 9 am" y Siri va a hacer una nota de ello. No es elegante ni completamente automática, pero si me estuviera mirando en el seguimiento de las horas facturables, no me importaría un poco de redundancia :-)