Oto kolejna opcja dla osób próbujących to zrobić.
Zamiast uruchamiać polecenie co 5 minut, możesz je uruchomić przy każdej /Library/Preferences/SystemConfiguration/
zmianie folderu . Zwykle dzieje się tak tylko wtedy, gdy następuje jakaś zmiana sieci.
Możesz to zrobić za pomocą Lingona lub stworzyć własną listę uruchomieniową, która wyglądałaby mniej więcej tak:
<?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>
Oczywiście chcesz zastąpić /path/to/your/script.sh
rzeczywistą ścieżkę.
Pamiętaj, że może być konieczne dołączenie „uśpienia 10” w pobliżu początku skryptu, aby komputer Mac mógł dokonać wszystkich zmian po zmianie sieci.
Najłatwiejszym sposobem uzyskania nazwy (SSID) sieci AirPort, z którą jesteś podłączony, jest:
airport -I | awk -F': ' '/ SSID/{print $NF}'
airport
Polecenia można znaleźć na stronie /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
w 10,8 (i wierzę, 10.7 i 10.6)
Ogólnie łączę to z / usr / local / bin:
ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
może być konieczne wykonanie sudo
tego polecenia, w zależności od konfiguracji / usr / local / bin /.
Na koniec musisz zastanowić się, co zrobić, gdy uśpisz laptopa. Na przykład, jeśli jesteś w biurze od 9 do 5 lat i śpisz na laptopie o 5, to też chcesz to nagrać, prawda? W przeciwnym razie, skąd będziesz wiedzieć, kiedy wyszedłeś?
W tym celu polecam SleepWatcher 2.2, który jest dostępny na stronie http://www.bernhard-baehr.de (bezpłatny, zawiera kod źródłowy). Umożliwi to uruchomienie skryptu powłoki za każdym razem, gdy komputer Mac budzi się lub śpi.
Jedynym innym czynnikiem jest to, co zrobić, jeśli wylogujesz się lub zamkniesz komputer zamiast go uśpić. Nie mam na to dobrej odpowiedzi. Teoretycznie LogoutHook byłby odpowiedzią, ale te wydają się niewiarygodne, szczególnie przy zamykaniu systemu przeciwko wylogowaniu.
Zupełnie niezwiązana sugestia
Wspomniałeś, że masz urządzenie z systemem iOS. Być może jednym ze sposobów rozwiązania tego problemu byłoby utworzenie Przypomnienia za każdym razem, gdy przyjedziesz lub odejdziesz z pracy. Kiedy przypomnienie się wyłączy, uruchom Siri i powiedz „Pamiętaj o pracy o 17” lub „Pamiętaj, że dotarłem do pracy o 9 rano”, a Siri to zanotuje. Nie elegancki ani całkowicie automatyczny, ale gdybym patrzył na śledzenie rozliczanych godzin, nie miałbym nic przeciwko małej nadmiarowości :-)