Esta es una alternativa al otro script que publiqué. Éste 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 cambia a inalámbrica, deshabilita Time Machine.
Paso 1: Verificación del sistema
Mientras esté conectado a Ethernet, deberá ejecutar un comando manualmente para confirmar a qué interfaz está asignada Ethernet. Ejecute este comando:
ifconfig
Debería generar una pantalla llena de información. Lo que está buscando es una sección etiquetada en
con un número después, y cuya última línea es la status: active
siguiente:
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 al en
principio: esta es la interfaz en la que se ejecuta su conexión Ethernet.
Paso 2: crear la aplicación AppleScript
En la secuencia de comandos a continuación, donde dice set wired_interface to "0"
, cambie 0
el número al lado de en
en la salida anterior. (Debería ser 0; si está en una 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
⌘+ spara guardar. En la hoja de propiedades Guardar, establezca File Format
como Application
y marque la casilla para Stay open after run handler
. Guárdelo donde quiera: escritorio o carpeta de aplicaciones; realmente no importa, solo sepa dónde lo guardó.
Paso 3: crea los scripts de Shell
A continuación, abra la Terminal. Escriba los siguientes comandos:
cd ~/
mkdir TMSwitch
cd TMSwitch
pico TM_On.csh
Pegue la siguiente línea en:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE
Presione control+ x, escriba yy presione returnpara guardar y salir. Luego ejecuta este comando:
pico TM_Off.csh
Y en este archivo pegue la siguiente línea:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE
De nuevo, control+ x, luego yy returnpara guardar y salir.
Luego, ingrese estos comandos:
chmod 4555 TM_O*.csh
chown root TM_O*.csh
Paso 4: Configuración sudo
para ejecutarse sin contraseña
Dejar que el comando Terminal se sudo
ejecute sin contraseña puede ser muy peligroso. Es por eso que los pasos anteriores crearon los scripts de shell en su propio directorio, por lo que lo que realmente se puede ejecutar es limitado.
Ingrese el siguiente comando en la Terminal:
sudo pico /etc/sudoers
Luego ingrese su contraseña de administrador cuando se le solicite.
Esto puede llevarlo a una pantalla (en su mayoría) en blanco, o puede tener algo de texto. Si está en blanco, está bien. Simplemente pegará la línea de abajo en la parte superior. Si el texto ya existe, también está bien; use su flecha hacia abajo para ir justo debajo de las líneas que ya están en la # User privilege specification
sección, como se ve en la captura de pantalla a continuación.
Aquí, agregue la siguiente línea:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
En ambos lugares donde <yourusername>
aparece, reemplácelo con su nombre de usuario de Mac. Presione control+ x, escriba yy presione returnpara guardar y salir.
Pruebe que estos archivos activen y desactiven Time Machine ejecutando el siguiente comando (suponiendo que Time Machine esté actualmente activado):
sudo ./TM_Off.csh
Después de un momento, el icono de Time Machine en la barra de menú debería volverse gris, indicando que Time Machine está apagado. (Es posible que deba hacer clic en el icono para que refleje el cambio). Suponiendo que esto funciona, ejecute este comando:
sudo ./TM_On.csh
Y Time Machine debería volver a habilitarse.
Y fuera de ti
Ejecute la aplicación que creó en el AppleScript Editor anterior, y permanecerá abierta, habilitando e inhabilitando Time Machine a medida que su conexión cambie de Ethernet a inalámbrica y viceversa. Para deshabilitar el cambio, simplemente cierre la aplicación AppleScript (haga clic derecho en el icono en el Dock y elija Salir).