Dies ist eine Alternative zu dem anderen Skript, das ich gepostet habe. Dieser wird im Hintergrund ausgeführt und testet die Netzwerkverbindung alle zwei Minuten, um festzustellen, ob eine Ethernet-Verbindung oder eine drahtlose Verbindung verwendet wird. Bei Ethernet wird Time Machine aktiviert. Wenn die Verbindung auf drahtlos umgeschaltet wird, wird Time Machine deaktiviert.
Schritt 1: Systemprüfung
Während Sie mit Ethernet verbunden sind, müssen Sie einen Befehl manuell ausführen, um zu bestätigen, welcher Schnittstelle Ethernet zugewiesen ist. Führen Sie diesen Befehl aus:
ifconfig
Es sollte ein Bildschirm voller Informationen ausgegeben werden. Was Sie suchen, ist ein Abschnitt, der en
mit einer Zahl danach gekennzeichnet ist und dessen letzte Zeile status: active
wie folgt lautet :
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
Notieren Sie sich die Nummer en
am Anfang - dies ist die Schnittstelle, auf der Ihre Ethernet-Verbindung ausgeführt wird.
Schritt 2: Erstellen Sie die AppleScript-Anwendung
set wired_interface to "0"
Ändern Sie im 0
folgenden Skript, wo es steht , die Zahl in die Nummer neben en
der obigen Ausgabe. (Es sollte 0 sein; wenn Sie auf einem Mac Pro arbeiten, kann es 1 sein.) myusername
Ersetzen Sie auch im folgenden Skript oben dort, wo es steht , Ihren eigenen Mac-Benutzernamen.
-- 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
⌘+ szu speichern. Im Speichern Kartei setzt die File Format
wie Application
, und das Kontrollkästchen Stay open after run handler
. Speichern Sie es, wo immer Sie möchten - Desktop oder Anwendungsordner - es spielt wirklich keine Rolle, wissen Sie nur, wo Sie es gespeichert haben.
Schritt 3: Erstellen Sie die Shell-Skripte
Öffnen Sie als Nächstes das Terminal. Geben Sie die folgenden Befehle ein:
cd ~/
mkdir TMSwitch
cd TMSwitch
pico TM_On.csh
Fügen Sie die folgende Zeile ein:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE
Drücken Sie control+ x, Typ yund drücken Sie returnzum Speichern und Beenden. Führen Sie dann diesen Befehl aus:
pico TM_Off.csh
Fügen Sie in diese Datei die folgende Zeile ein:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE
Wieder control+ x, dann yund returnzum Speichern und Beenden.
Geben Sie als Nächstes die folgenden Befehle ein:
chmod 4555 TM_O*.csh
chown root TM_O*.csh
Schritt 4: Einrichten sudo
für die Ausführung ohne Kennwort
Das sudo
Ausführen des Terminalbefehls ohne Kennwort kann sehr gefährlich sein. Aus diesem Grund haben die obigen Schritte die Shell-Skripte in einem eigenen Verzeichnis erstellt, sodass die tatsächlich ausgeführten Funktionen begrenzt sind.
Geben Sie im Terminal den folgenden Befehl ein:
sudo pico /etc/sudoers
Geben Sie dann Ihr Administratorkennwort ein, wenn Sie dazu aufgefordert werden.
Dies kann Sie zu einem (meistens) leeren Bildschirm führen, oder es kann Text enthalten. Wenn es leer ist, ist das in Ordnung. Fügen Sie einfach die folgende Zeile oben ein. Wenn bereits Text vorhanden ist, ist das auch in Ordnung. Verwenden Sie Ihren Abwärtspfeil, um direkt unter die Linien zu gelangen, die sich bereits im # User privilege specification
Abschnitt befinden (siehe Abbildung unten).
Fügen Sie hier die folgende Zeile hinzu:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
<yourusername>
Ersetzen Sie ihn an beiden Stellen, an denen er angezeigt wird, durch Ihren Mac-Benutzernamen. Drücken Sie control+ x, Typ yund drücken Sie returnzum Speichern und Beenden.
Testen Sie, ob diese Dateien Time Machine ein- und ausschalten, indem Sie den folgenden Befehl ausführen (vorausgesetzt, Time Machine ist derzeit aktiviert):
sudo ./TM_Off.csh
Nach einem Moment sollte das Time Machine-Symbol in der Menüleiste grau werden, um anzuzeigen, dass Time Machine ausgeschaltet ist. (Möglicherweise müssen Sie auf das Symbol klicken, um die Änderung wiederzugeben.) Wenn dies funktioniert, führen Sie den folgenden Befehl aus:
sudo ./TM_On.csh
Und Time Machine sollte wieder aktiviert werden.
Und los geht's
Führen Sie die Anwendung aus, die Sie oben im AppleScript-Editor erstellt haben. Sie bleibt geöffnet und aktiviert und deaktiviert Time Machine, wenn Ihre Verbindung von Ethernet zu Wireless und zurück wechselt. Um die Umschaltung zu deaktivieren, schließen Sie einfach die AppleScript-Anwendung (klicken Sie mit der rechten Maustaste auf das Symbol im Dock und wählen Sie Beenden).