Questa è un'alternativa all'altra sceneggiatura che ho pubblicato. Questo viene eseguito in background e verifica la connessione di rete ogni due minuti per determinare se utilizza una connessione Ethernet o wireless. Se su Ethernet, abilita Time Machine; quando la connessione passa al wireless disabilita Time Machine.
Passaggio 1: Verifica del sistema
Durante la connessione a Ethernet, sarà necessario eseguire manualmente un comando per confermare a quale interfaccia è assegnato Ethernet. Esegui questo comando:
ifconfig
Dovrebbe essere visualizzato uno schermo pieno di informazioni. Quello che stai cercando è una sezione etichettata en
con un numero dopo di essa, e la cui ultima riga è status: active
, in questo modo:
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
Nota il numero accanto en
all'inizio: questa è l'interfaccia su cui è in esecuzione la tua connessione Ethernet.
Passaggio 2: creare l'applicazione AppleScript
Nello script seguente, dove dice set wired_interface to "0"
, cambia 0
il numero accanto en
all'output sopra. (Dovrebbe essere 0; se sei su un Mac Pro, potrebbe essere 1.) Anche nello script seguente, nella parte superiore dove dice myusername
, sostituisci il tuo nome utente 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
⌘+ sper salvare. Nella finestra delle proprietà Salva, impostare File Format
come Application
e selezionare la casella per Stay open after run handler
. Salvalo dove preferisci - Desktop o Cartella Applicazioni - non importa, basta sapere dove l'hai salvato.
Passaggio 3: creare gli script Shell
Quindi, aprire Terminal. Digita i seguenti comandi:
cd ~/
mkdir TMSwitch
cd TMSwitch
pico TM_On.csh
Incolla la seguente riga in:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE
Premere control+ x, digitare ye premere returnper salvare ed uscire. Quindi eseguire questo comando:
pico TM_Off.csh
E in questo file incolla la seguente riga:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE
Ancora una volta, control+ x, quindi ye returnper salvare ed uscire.
Quindi, inserisci questi comandi:
chmod 4555 TM_O*.csh
chown root TM_O*.csh
Passaggio 4: impostazione sudo
per l'esecuzione senza password
Lasciare sudo
eseguire il comando Terminale senza password può essere molto pericoloso. Ecco perché i passaggi precedenti hanno creato gli script della shell nella propria directory, quindi ciò che può essere effettivamente eseguito è limitato.
Immettere il seguente comando nel Terminale:
sudo pico /etc/sudoers
Quindi inserire la password dell'amministratore quando richiesto.
Questo potrebbe farti apparire su uno schermo (principalmente) vuoto, o potrebbe contenere del testo. Se è vuoto, va bene. Basta incollare la riga in basso in alto. Se il testo esiste già, va bene lo stesso; usa la tua freccia in giù per andare subito sotto le linee già nella # User privilege specification
sezione, come mostrato nello screenshot qui sotto.
Qui, aggiungi la seguente riga:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
In entrambi i punti in cui <yourusername>
appare, sostituiscilo con il tuo nome utente Mac. Premere control+ x, digitare ye premere returnper salvare ed uscire.
Verifica che questi file attivino e disattivino Time Machine eseguendo il comando seguente (supponendo che Time Machine sia attualmente attivo):
sudo ./TM_Off.csh
Dopo qualche istante l'icona Time Machine nella barra dei menu dovrebbe diventare grigia, a indicare che Time Machine è disattivato. (Potrebbe essere necessario fare clic sull'icona affinché rifletta la modifica). Supponendo che funzioni, eseguire questo comando:
sudo ./TM_On.csh
E Time Machine dovrebbe essere riattivato.
E il gioco è fatto
Esegui l'applicazione che hai creato in AppleScript Editor sopra e rimarrà aperta, abilitando e disabilitando Time Machine mentre la tua connessione passa da Ethernet a wireless e viceversa. Per disabilitare la commutazione, basta chiudere l'applicazione AppleScript (fare clic con il tasto destro sull'icona nel Dock e scegliere Esci).