Jest to alternatywa dla innego skryptu, który opublikowałem. Ten działa w tle i co dwie minuty testuje połączenie sieciowe, aby ustalić, czy używa połączenia Ethernet, czy bezprzewodowego. W sieci Ethernet włącza Time Machine; kiedy połączenie przełącza się na bezprzewodowe, wyłącza Time Machine.
Krok 1: Kontrola systemu
Po podłączeniu do Ethernetu musisz ręcznie uruchomić jedno polecenie, aby potwierdzić, do którego interfejsu jest przypisany Ethernet. Uruchom to polecenie:
ifconfig
Powinien wyświetlić ekran pełen informacji. To, czego szukasz, to sekcja oznaczona en
numerem po niej, której ostatnią linią jest status: active
:
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
ether 00:25:00:ef:30:3c
inet6 fe80::225:ff:feef:303c%en1 prefixlen 64 scopeid 0x5
inet 192.168.1.68 netmask 0xffffff00 broadcast 192.168.1.255
media: autoselect (100baseTX <full-duplex>)
status: active
Zanotuj liczbę obok en
na początku - jest to interfejs, na którym działa twoje połączenie Ethernet.
Krok 2: Utwórz aplikację AppleScript
W skrypcie poniżej, tam gdzie jest napisane set wired_interface to "0"
, zmień 0
liczbę na obok en
powyższego wyniku. (Powinno to być 0; jeśli używasz komputera Mac Pro, może to być 1.) Również w poniższym skrypcie, u góry, gdzie jest napisane myusername
, zastąp własną nazwę użytkownika Mac.
-- Edit variables here --
global current_username
set current_username to "myusername"
global wired_interface
set wired_interface to "0"
-- DO NOT EDIT BELOW THIS LINE --
global last_connection
set last_connection to "wireless"
on idle
if (do shell script "ifconfig en" & wired_interface & " | awk '/inet/ {print $2}'") is not equal to "" then
-- on ethernet
if last_connection is equal to "wireless" then
-- turn TM on
-- else do nothing, we're still on ethernet
set last_connection to "ethernet"
do shell script "sudo /Users/" & current_username & "/TMSwitch/TM_On.csh"
end if
else
-- on wireless
if last_connection is equal to "ethernet" then
-- turn tm off
-- else do nothing, we're still on wireless
set last_connection to "wireless"
do shell script "sudo /Users/" & current_username & "/TMSwitch/TM_Off.csh"
end if
end if
return 120
end idle
⌘+, saby zapisać. W arkuszu właściwości Zapisz ustaw File Format
jako Application
i zaznacz pole dla Stay open after run handler
. Zapisz go gdziekolwiek chcesz - na pulpicie lub w folderze aplikacji - to naprawdę nie ma znaczenia, po prostu wiedz, gdzie go zapisałeś.
Krok 3: Utwórz skrypty powłoki
Następnie otwórz Terminal. Wpisz następujące polecenia:
cd ~/
mkdir TMSwitch
cd TMSwitch
pico TM_On.csh
Wklej następujący wiersz:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE
Naciśnij control+ x, wpisz yi naciśnij, returnaby zapisać i wyjść. Następnie uruchom to polecenie:
pico TM_Off.csh
I w tym pliku wklej następujący wiersz:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE
Ponownie control+ x, a następnie yi, returnaby zapisać i wyjść.
Następnie wprowadź następujące polecenia:
chmod 4555 TM_O*.csh
chown root TM_O*.csh
Krok 4: Konfigurowanie sudo
do działania bez hasła
Uruchamianie polecenia Terminal sudo
bez hasła może być bardzo niebezpieczne. Właśnie dlatego powyższe kroki utworzyły skrypty powłoki we własnym katalogu, więc to, co faktycznie można uruchomić, jest ograniczone.
Wpisz następujące polecenie w terminalu:
sudo pico /etc/sudoers
Następnie po wyświetleniu monitu wprowadź hasło administratora.
Może to doprowadzić do (przeważnie) pustego ekranu lub tekstu. Jeśli jest puste - w porządku. Po prostu wkleisz poniższy wiersz u góry. Jeśli tekst już istnieje, to też dobrze; użyj strzałki w dół, aby przejść bezpośrednio pod liniami już w # User privilege specification
sekcji, jak pokazano na poniższym zrzucie ekranu.
Tutaj dodaj następujący wiersz:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
W obu miejscach, w których się <yourusername>
pojawi, zastąp go nazwą użytkownika komputera Mac. Naciśnij control+ x, wpisz yi naciśnij, returnaby zapisać i wyjść.
Sprawdź, czy te pliki włączają i wyłączają Time Machine, uruchamiając następujące polecenie (zakładając, że Time Machine jest aktualnie włączony):
sudo ./TM_Off.csh
Po chwili ikona wehikułu czasu na pasku menu powinna zmienić kolor na szary, co oznacza, że wehikuł czasu jest wyłączony. (Może być konieczne kliknięcie ikony, aby odzwierciedlić zmianę). Zakładając, że to działa, uruchom następujące polecenie:
sudo ./TM_On.csh
A wehikuł czasu powinien zostać ponownie włączony.
I odejdź
Uruchom aplikację utworzoną w powyższym edytorze AppleScript, a pozostanie ona otwarta, włączając i wyłączając Time Machine, gdy twoje połączenie przełącza się z Ethernet na bezprzewodowe iz powrotem. Aby wyłączyć przełączanie, po prostu zamknij aplikację AppleScript (kliknij prawym przyciskiem myszy ikonę w Docku i wybierz polecenie Zakończ).