Вот еще один вариант для людей, пытающихся это сделать.
Вместо того, чтобы запускать команду каждые 5 минут, вы можете запускать ее при каждом /Library/Preferences/SystemConfiguration/
изменении папки . Обычно это происходит только при каких-либо изменениях в сети.
Вы можете сделать это с помощью Lingon или создать свой собственный файл launchd, который будет выглядеть примерно так:
<?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>
Очевидно, вы хотели бы заменить /path/to/your/script.sh
на фактический путь.
Обратите внимание, что вам может понадобиться включить «sleep 10» в начале скрипта, чтобы дать Mac возможность внести все свои изменения после изменения сети.
Кроме того, самый простой способ получить имя (SSID) сети AirPort, к которой вы подключены, это:
airport -I | awk -F': ' '/ SSID/{print $NF}'
airport
Команду можно найти на сайте /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
в 10.8 (и я считаю , 10.7 и 10.6)
Я обычно связываю это с / usr / local / bin:
ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
вам может понадобиться sudo
эта команда, в зависимости от того, как настроен ваш / usr / local / bin /.
И последнее, но не менее важное: вам нужно подумать о том, что делать, когда вы кладете свой ноутбук спать. Например, если вы находитесь в офисе с 9-5 и спите на своем ноутбуке в 5, вы тоже хотите это записать, верно? Иначе как ты узнаешь, когда ушел?
Для этого я рекомендую SleepWatcher 2.2, который доступен по адресу http://www.bernhard-baehr.de (бесплатный, с исходным кодом). Это позволит вам запускать скрипт оболочки всякий раз, когда ваш Mac просыпается или спит.
Единственное другое соображение - что делать, если вы выходите из системы или выключаете компьютер, а не спите. У меня нет хорошего ответа на этот вопрос. Теоретически ответом будет LogoutHook , но они кажутся ненадежными, особенно при выключении или выходе из системы.
Совершенно несвязанное предложение
Вы упомянули, что у вас есть устройство iOS. Возможно, один из способов решения этой проблемы - создать напоминание, когда вы приходите или уходите с работы. Когда напоминание сработает, активируйте Siri и скажите «Помните, что ушли с работы в 17:00» или «Помните, что пришли на работу в 9:00», и Сири запомнит это. Не элегантный и не полностью автоматический, но если бы я смотрел на отслеживание оплачиваемых часов, я бы не отказался от небольшой избыточности :-)