W domu nie mam świetnej konfiguracji Wi-Fi, co czasami powoduje nieudane kopie zapasowe Time Machine. Czy istnieje sposób na określenie, że Time Machine tworzy kopie zapasowe tylko w określonych okolicznościach - np. Połączenie Ethernet jest aktywne ...?
network
time-machine
script
automation
babelmonk
źródło
źródło
Odpowiedzi:
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:
Powinien wyświetlić ekran pełen informacji. To, czego szukasz, to sekcja oznaczona
en
numerem po niej, której ostatnią linią jeststatus: 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 oboken
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 napisanemyusername
, zastąp własną nazwę użytkownika Mac.⌘+, saby zapisać. W arkuszu właściwości Zapisz ustaw
File Format
jakoApplication
i zaznacz pole dlaStay 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:
Wklej następujący wiersz:
Naciśnij control+ x, wpisz yi naciśnij, returnaby zapisać i wyjść. Następnie uruchom to polecenie:
I w tym pliku wklej następujący wiersz:
Ponownie control+ x, a następnie yi, returnaby zapisać i wyjść.
Następnie wprowadź następujące polecenia:
Krok 4: Konfigurowanie
sudo
do działania bez hasłaUruchamianie 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:
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:
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):
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:
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).
źródło
launchd
i powiedzieć mu, aby szukał jakichkolwiek zmian w/Library/Preferences/SystemConfiguration/
folderze. Mam taki przykład dostępny na github.com/tjluoma/onnetworkchange .Ten AppleScript sprawdzi, czy połączenie Ethernet jest aktywne, a następnie uruchom kopię zapasową Time Machine, jeśli tak jest.
Najpierw wyłącz Time Machine w Preferencjach systemowych. Poniższa metoda uruchomi ją automatycznie.
Po podłączeniu do Ethernetu musisz ręcznie uruchomić jedno polecenie, aby potwierdzić, do którego interfejsu jest przypisany Ethernet. Uruchom to polecenie:
Powinien wyświetlić ekran pełen informacji. To, czego szukasz, to sekcja oznaczona
en
numerem po niej, której ostatnią linią jeststatus: active
:Zanotuj liczbę obok
en
na początku - jest to interfejs, na którym działa twoje połączenie Ethernet. W skrypcie poniżej, tam gdzie jest napisaneen9
, zamień9
na numer z góry. (Jeśli masz komputer Mac Pro, będzie to najprawdopodobniejen0
alboen1
. W przeciwnym razie, będzie to prawdopodobnieen0
).Zapisz to jako
EthernetTimeMachine.scpt
w swoim katalogu domowym (/Users/<yourusername>/
).Następnie otwórz Terminal i wpisz następujące polecenie:
Otworzy się edytor tekstu, który pozwoli ci zaplanować uruchamianie tego skryptu co godzinę, tak jak domyślnie Time Machine. Wklej tę linię:
Naciśnij control+, Xa następnie wpisz
y
i naciśnij, returnaby zapisać i wyjść.Aby go wyłączyć, wróć do Terminala, ponownie użyj polecenia:
Następnie usuń wiersz dodany powyżej i wykonaj te same czynności, aby zapisać i wyjść.
źródło
Możesz otworzyć Prefiksy sieciowe i upewnić się, że Ethernet jest najwyższym połączeniem w zleceniu serwisowym. Mam nadzieję, że zobaczysz, co mam na myśli na tym zrzucie ekranu.
Następnie, jeśli podłączony jest Ethernet, należy zawsze używać go jako podstawowego połączenia.
Zobacz tutaj, jak ustawić priorytet usługi: http://osxdaily.com/2013/06/15/set-network-connection-priority-mac-os-x/
źródło