Voici une autre option pour les personnes qui essaient de le faire.
Plutôt que d'exécuter une commande toutes les 5 minutes, vous pouvez l'exécuter chaque fois que le dossier /Library/Preferences/SystemConfiguration/
change. Cela se produit généralement uniquement en cas de changement de réseau.
Vous pouvez le faire en utilisant Lingon ou créer votre propre liste de lancement qui ressemblerait à ceci:
<?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>
De toute évidence, vous souhaitez remplacer /path/to/your/script.sh
le chemin réel.
Notez que vous devrez peut-être inclure un «sommeil 10» près du début du script pour donner au Mac une chance de faire tous ses ajustements une fois qu'un changement de réseau s'est produit.
De plus, la façon la plus simple d'obtenir le nom (SSID) du réseau AirPort auquel vous êtes connecté est:
airport -I | awk -F': ' '/ SSID/{print $NF}'
La airport
commande peut être trouvée /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
dans 10.8 (et je crois 10.7 et 10.6)
Je le relie généralement à / usr / local / bin:
ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
vous devrez peut-être exécuter sudo
cette commande, selon la configuration de votre / usr / local / bin /.
Enfin, vous devez vous demander quoi faire lorsque vous mettez votre ordinateur portable en veille. Par exemple, si vous êtes au bureau de 9 h à 17 h et que vous dormez à 5 h, vous voulez enregistrer cela aussi, non? Sinon, comment saurez-vous quand vous êtes parti?
Pour cela, je recommande SleepWatcher 2.2 qui est disponible sur http://www.bernhard-baehr.de (gratuit, code source inclus). Cela vous permettra d'exécuter un script shell chaque fois que votre Mac se réveille ou se met en veille.
La seule autre considération est de savoir quoi faire si vous vous déconnectez ou éteignez votre ordinateur, au lieu de le mettre en veille. Je n'ai pas de bonne réponse pour celle-là. Théoriquement, un LogoutHook serait la réponse, mais ceux-ci semblent peu fiables, en particulier à l'arrêt vs à la déconnexion.
Une suggestion complètement indépendante
Vous avez mentionné que vous disposiez d'un appareil iOS. Peut-être qu'une façon de résoudre ce problème serait de créer un rappel pour chaque fois que vous arrivez ou quittez le travail. Lorsque le rappel se déclenche, déclenchez Siri et dites «Rappelez-vous de quitter le travail à 17 h» ou «Rappelez-vous arrivé au travail à 9 h» et Siri en prendra note. Pas élégant ni complètement automatique, mais si je cherchais à suivre les heures facturables, cela ne me dérangerait pas un peu de redondance :-)