Ecco un'altra opzione per le persone che cercano di farlo.
Invece di eseguire un comando ogni 5 minuti, è possibile eseguirlo ogni volta che la cartella /Library/Preferences/SystemConfiguration/
cambia. Questo generalmente accade solo quando si verifica una sorta di cambio di rete.
Puoi farlo usando Lingon o creare il tuo programma di avvio che assomiglierebbe a questo:
<?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>
Ovviamente vorresti sostituire /path/to/your/script.sh
il percorso effettivo.
Tieni presente che potrebbe essere necessario includere un "sleep 10" vicino all'inizio dello script per dare al Mac la possibilità di apportare tutte le modifiche una volta avvenuta una modifica della rete.
Inoltre, il modo più semplice per ottenere il nome (SSID) della rete AirPort a cui sei connesso è:
airport -I | awk -F': ' '/ SSID/{print $NF}'
Il airport
comando è disponibile /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
in 10.8 (e credo 10.7 e 10.6)
In genere lo collego a / usr / local / bin:
ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
potresti aver bisogno di sudo
quel comando, a seconda di come è configurato / usr / local / bin /.
Ultimo ma non meno importante, devi considerare cosa fare quando metti il laptop in modalità di sospensione. Ad esempio, se sei in ufficio dalle 9 alle 5 e dormi il tuo laptop alle 5, vuoi registrarlo anche tu, giusto? Altrimenti come saprai quando te ne sei andato?
Per questo consiglio SleepWatcher 2.2 che è disponibile da http://www.bernhard-baehr.de (gratuito, incluso il codice sorgente). Ciò ti consentirà di eseguire uno script di shell ogni volta che il tuo Mac si sveglia o dorme.
L'unica altra considerazione è cosa fare se ci si disconnette o si spegne il computer, invece di dormirlo. Non ho una buona risposta per quello. Teoricamente un LogoutHook sarebbe la risposta, ma quelli sembrano inaffidabili, specialmente su shutdown vs logout.
Un suggerimento completamente indipendente
Hai detto che hai un dispositivo iOS. Forse un modo per risolvere questo problema sarebbe quello di creare un promemoria ogni volta che arrivi o lasci il lavoro. Quando il promemoria si spegne, attiva Siri e pronuncia "Ricorda lavoro lasciato alle 17:00" o "Ricorda lavoro arrivato alle 9:00" e Siri ne prenderà nota. Non elegante né completamente automatico, ma se stavo guardando il monitoraggio delle ore fatturabili, non mi dispiacerebbe un po 'di ridondanza :-)