Ось ще один варіант для людей, які намагаються це зробити.
Замість того, щоб виконувати команду кожні 5 хвилин, ви можете запускати її щоразу, коли папка /Library/Preferences/SystemConfiguration/змінюється. Зазвичай це відбувається лише тоді, коли є якась зміна мережі.
Ви можете зробити це за допомогою Lingon або скласти власний запущений пліст, який виглядатиме приблизно так:
<?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фактичний шлях.
Зауважте, що вам може знадобитися включити "сон 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. Можливо, одним із способів вирішити цю проблему було б створити нагадування про те, коли ви приїжджаєте або залишаєте роботу. Коли нагадування вимкнеться, запустіть Сірі та скажіть «Запам’ятайте, що вийшли з роботи о 17 вечора» або «Пам'ятайте, що прийшли на роботу о 9 ранку», і Сірі зробить це. Не елегантний і не повністю автоматичний, але якби я дивився на відстеження оплачуваних годин, я не заперечував би надмірності :-)