Ecco un'altra opzione per le persone che cercano di farlo.
Invece di eseguire un comando ogni 5 minuti, puoi eseguirlo ogni volta che la cartella /Library/Preferences/SystemConfiguration/
cambia. Questo accade generalmente solo quando c'è una sorta di cambio di rete.
Puoi farlo utilizzando Lingon o crea il tuo plist di lancio che sarebbe simile 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
con il percorso attuale.
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 sue modifiche una volta che è avvenuto un cambio di 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 comando airport
può essere trovato a /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
di quel comando, a seconda di come / usr / local / bin / è configurato.
Ultimo ma non meno importante, è necessario considerare cosa fare quando si mette il portatile a dormire. Ad esempio, se sei in ufficio dal 9-5 e dormi al computer portatile alle 5, vuoi registrare anche questo, giusto? Altrimenti come farai a sapere quando te ne sei andato?
Per questo raccomando SleepWatcher 2.2, disponibile dal link (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 si disconnette o si spegne il computer, invece di dormire. Non ho una buona risposta per quello. Teoricamente un LogoutHook sarebbe la risposta, ma quelli sembrano inaffidabili , in particolare su shutdown vs logout.
Un suggerimento completamente non correlato
Hai menzionato che hai un dispositivo iOS. Forse un modo per risolvere questo problema sarebbe creare un promemoria per ogni volta che si arriva o si lascia il lavoro. Quando il promemoria si attiva, attiva Siri e dì "Ricorda il lavoro lasciato alle 17:00" o "Ricorda che sei arrivato al lavoro alle 9:00" e Siri ne prenderà nota. Non elegante né completamente automatico, ma se guardassi il monitoraggio delle ore fatturabili, non mi dispiacerebbe un po 'di ridondanza: -)