Esta es una alternativa al otro script que publiqué. Este se ejecuta en segundo plano y prueba la conexión de red cada dos minutos para determinar si está utilizando una conexión Ethernet o inalámbrica. Si está en Ethernet, habilita Time Machine; cuando la conexión pasa a ser inalámbrica, se desactiva Time Machine.
Paso 1: Verificación del sistema
Mientras esté conectado a Ethernet, deberá ejecutar un comando manualmente para confirmar a qué interfaz Ethernet está asignada. Ejecuta este comando:
ifconfig
Debería salir una pantalla llena de información. Lo que está buscando es una sección etiquetada como en
con un número detrás de ella, y cuya última línea es status: active
, como esta:
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
Tenga en cuenta el número al lado de en
al principio: esta es la interfaz en la que se está ejecutando su conexión Ethernet.
Paso 2: crea la aplicación AppleScript
En la siguiente secuencia de comandos, donde dice set wired_interface to "0"
, cambia 0
al número junto a en
en la salida anterior. (Debería ser 0; si está en un Mac Pro, puede ser 1.) También en el siguiente script, en la parte superior donde dice myusername
, sustituya su propio nombre de usuario de 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
⌘ + s para guardar. En la hoja de propiedades Guardar, establezca el File Format
como Application
, y marque la casilla para Stay open after run handler
. Guárdelo donde desee, en el escritorio o en la carpeta de aplicaciones, realmente no importa, solo sepa dónde lo guardó.
Paso3:crearlosscriptsdeshell
Acontinuación,abralaTerminal.Escribelossiguientescomandos:
cd~/mkdirTMSwitchcdTMSwitchpicoTM_On.csh
Peguelasiguientelíneaen:
defaultswrite/Library/Preferences/com.apple.TimeMachineAutoBackup-boolTRUE
Presionecontrol+x,escribayypresionereturnparaguardarysalir.Luegoejecutaestecomando:
picoTM_Off.csh
Yenestearchivopeguelasiguientelínea:
defaultswrite/Library/Preferences/com.apple.TimeMachineAutoBackup-boolFALSE
Nuevamente,control+x,luegoyyregresaparaguardarysalir.
Acontinuación,ingreseestoscomandos:
chmod4555TM_O*.cshchownrootTM_O*.csh
Paso4:configurarsudo
paraejecutarsincontraseña
DejarqueelcomandodeTerminalsudo
seejecutesinunacontraseñapuedesermuypeligroso.Esporesoquelospasosanteriorescrearonlosscriptsdeshellensupropiodirectorio,porloqueloquerealmentesepuedeejecutareslimitado.
IngreseelsiguientecomandoenlaTerminal:
sudopico/etc/sudoers
Luegoingresesucontraseñadeadministradorcuandoselesolicite.
Estopuedellevarloaunapantalla(ensumayoría)enblanco,opuedeteneralgodetexto.Siestáenblanco,estábien.Simplementepegaráslalíneadeabajoenlapartesuperior.Sieltextoyaexiste,esotambiénestábien;usalaflechahaciaabajoparairjustodebajodelaslíneasqueyaestánenlasección#Userprivilegespecification
,comoseveenlasiguientecapturadepantalla.
Aquí, agregue la siguiente línea:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
En ambos lugares donde aparece <yourusername>
, reemplácelo con su nombre de usuario de Mac. Presione control + x , escriba y y presione regresar para guardar y salir.
Pruebe que estos archivos activan y desactivan Time Machine ejecutando el siguiente comando (suponiendo que Time Machine está actualmente activado):
sudo ./TM_Off.csh
Después de un momento, el ícono de Time Machine en la barra de menú debería ponerse gris, lo que indica que Time Machine está apagado. (Es posible que deba hacer clic en el icono para que refleje el cambio). Suponiendo que esto funcione, ejecute este comando:
sudo ./TM_On.csh
Y Time Machine debería volver a habilitarse.
Y listo!
Ejecute la aplicación que creó anteriormente en el Editor AppleScript, y permanecerá abierta, habilitando y deshabilitando Time Machine cuando su conexión cambie de Ethernet a inalámbrica y viceversa. Para deshabilitar el cambio, simplemente cierre la aplicación AppleScript (haga clic con el botón derecho en el icono en el Dock y elija Salir).