9 votos

Activar/desactivar la Máquina del Tiempo, dependiendo del tipo de conexión de red

Yo no tengo una gran instalación Wi-Fi en el hogar y que a veces se produce un error de Tiempo de la Máquina de copias de seguridad. Hay una manera de especificar la Máquina del Tiempo sólo realiza copias de seguridad bajo ciertas circunstancias - es decir, la conexión Ethernet está activa...?

6voto

tubedogg Puntos 6827

Este AppleScript se compruebe si la conexión Ethernet está activa y, a continuación, ejecutar una copia de seguridad Time Machine, si es así.

En primer lugar, el Tiempo de desactivación de la Máquina en las Preferencias del Sistema. El siguiente método se ejecute automáticamente.

Mientras está conectado a Ethernet, necesitará ejecutar un comando manualmente para confirmar que la interfaz Ethernet se le han asignado. Ejecute este comando:

ifconfig

Se debe mostrar una pantalla completa de información. Lo que usted está buscando es una sección con la etiqueta en con un número después de éste, y cuya última línea es status: active, como este:

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 el número siguiente a en al principio - esta es la interfaz de la conexión Ethernet se está ejecutando. En el siguiente script, donde dice en9, reemplace 9 con el número de arriba. (Si usted tiene un Mac Pro, es muy probable que sea en0 o en1. De lo contrario, es probable que sea en0.)

if (do shell script "ifconfig en9 | awk '/inet/ {print $2}'") is not equal to "" then
    do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper &"
end if

Guardar esto como EthernetTimeMachine.scpt en la carpeta de inicio (/Users/<yourusername>/).

La próxima abrir Terminal y escribir el siguiente comando:

pico ~/crontab

Esto abrirá un editor de texto para permitir que usted para programar este script para que se ejecute cada hora, como Máquina del Tiempo por defecto. Pegar esta línea:

@hourly osascript ~/<yourusername>/EthernetTimeMachine.scpt

Pulse control+X , a continuación, escriba y y pulse retorno para guardar y salir.

Para desactivarlo, vuelva a la Terminal, de nuevo, utilice el comando:

pico ~/crontab

A continuación, elimine la línea que agregó anteriormente y utilizar los mismos pasos para guardar y salir.

6voto

tubedogg Puntos 6827

Esta es una alternativa para el otro script que he publicado. Este se ejecuta en segundo plano y las pruebas de la conexión a la red cada dos minutos para determinar si está utilizando una conexión Ethernet o inalámbrica. Si en Ethernet, permite a la Máquina del Tiempo; cuando la conexión de los interruptores inalámbrica se desactiva la Máquina del Tiempo.

Paso 1: Verificación Del Sistema

Mientras está conectado a Ethernet, necesitará ejecutar un comando manualmente para confirmar que la interfaz Ethernet se le han asignado. Ejecute este comando:

ifconfig

Se debe mostrar una pantalla completa de información. Lo que usted está buscando es una sección con la etiqueta en con un número después de éste, y cuya última línea es status: active, como este:

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 el número siguiente a en al principio - esta es la interfaz de la conexión Ethernet se está ejecutando.

Paso 2: Crear la Aplicación AppleScript

En el siguiente script, donde dice set wired_interface to "0", el cambio de la 0 para el número siguiente a en en el resultado anterior. (Debe ser 0; si estás en un Mac Pro, puede ser 1.) También en la siguiente secuencia de comandos, en la parte superior donde dice myusername, sustituir 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 el Guardar la hoja de propiedades, establezca la File Format como Application, y marque la casilla de Stay open after run handler. Guardarlo donde quieras - Escritorio o en la Carpeta Aplicaciones - realmente no importa, solo se sabe donde se guarda.

AppleScript Editor Save dialog box showing the File Format set to Application, and box checked for Stay open after run handler

Paso 3: Crear los Scripts de Shell

A continuación, abra la Terminal. Escriba los comandos siguientes:

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

Pulse control+x, escriba y y presione retorno para guardar y salir. A continuación, ejecute 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 y y volver a guardar y salir.

A continuación, introduzca los siguientes comandos:

chmod 4555 TM_O*.csh
chown root TM_O*.csh

Paso 4: configurar sudo a Ejecutar Sin una Contraseña

Dejar que el Terminal de comandos sudo de ejecución sin necesidad de una contraseña puede ser muy peligroso. Es por eso que los pasos anteriores crean los scripts de shell en su propio directorio, así que lo que realmente se puede ejecutar es limitado.

Escriba el siguiente comando en la Terminal:

sudo pico /etc/sudoers

A continuación, introduzca su contraseña de administrador cuando se le solicite.

Esto puede llevar a una (en su mayoría) en la pantalla en blanco, o puede que tenga algo de texto en él. Si es en blanco - que está bien. Usted acaba de pegar la siguiente línea en la parte superior. Si el texto ya existe, que está también muy bien; utilizar la flecha hacia abajo para ir a la derecha debajo de las líneas ya en la # User privilege specification sección, como se ve en la siguiente captura de pantalla.

Terminal screenshot showing the sudoers file open in Pico

Aquí, agregue la siguiente línea:

<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*

En ambos lugares donde <yourusername> aparece, reemplazarlo con su nombre de usuario de Mac. Pulse control + x, escriba y y presione retorno para guardar y salir.

Prueba de que estos archivos de giro de la Máquina del Tiempo de encendido y apagado mediante la ejecución del siguiente comando (suponiendo que la Máquina del Tiempo está actualmente):

sudo ./TM_Off.csh

Después de un momento la Máquina del Tiempo icono en la barra de menú debe tornarse gris, indicando el Tiempo de la Máquina está apagada. (Puede que necesite hacer clic en el icono para reflejar el cambio). Suponiendo que esto funciona, ejecute este comando:

sudo ./TM_On.csh

Y la Máquina del Tiempo, debe ser re-habilitado.

Y Listo

Ejecutar la aplicación creada en el Editor AppleScript arriba, y permanecerá abierta, habilitación y deshabilitación de la Máquina del Tiempo como su conexión de interruptores de Ethernet inalámbrico y la espalda. Para deshabilitar cambio, sólo tiene que cerrar la aplicación AppleScript (haga clic derecho en el icono en el Dock y seleccione Salir).

-1voto

kecman Puntos 11

Usted puede abrir la Red de Preferencias y asegúrese de Ethernet es la parte superior de la conexión en la orden de servicio. Usted puede ver lo que quiero decir en esta captura de pantalla, espero.

Entonces, si Ethernet está conectado, usted siempre debe usar como su conexión primaria.

Ver aquí para saber cómo configurar el servicio de prioridad: http://osxdaily.com/2013/06/15/set-network-connection-priority-mac-os-x/

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X