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...?
Respuestas
¿Demasiados anuncios?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.
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.
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.
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).
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/