Ativar / desativar a máquina do tempo, dependendo do tipo de conexão de rede -- network campo com time-machine campo com script campo com automation camp apple Relacionado O problema

Enable/disable Time Machine depending on network connection type


9
vote

problema

português

Eu não tenho uma ótima configuração de Wi-Fi aqui em casa e às vezes resulta em backups de máquina de tempo com falha. Existe uma maneira de especificar que a máquina do tempo apenas faz backup sob certas circunstâncias - i.e. A conexão Ethernet está ativa ...?

english

I've not got a great Wi-Fi setup here at home and it sometimes results in failed Time Machine backups. Is there a way of specifying that Time Machine only backs up under certain circumstances - i.e. Ethernet connection is active...?

           
     
     

Lista de respostas

6
 
vote
vote
Melhor resposta
 

Esta é uma alternativa para o outro roteiro que postei. Este é executado em segundo plano e testa a conexão de rede a cada dois minutos para determinar se ele está usando uma conexão Ethernet ou sem fio. Se na Ethernet, permite a máquina do tempo; Quando a conexão alterna para a Internet, desativa a máquina do tempo.

Etapa 1: Verificação do sistema

Enquanto estiver conectado à Ethernet, você precisará executar um comando manualmente para confirmar qual a interface Ethernet é atribuída. Execute este comando:

  ifconfig    

Deve produzir uma tela cheia de informações. O que você está procurando é uma seção denominada en com um número depois dele, e cuja última linha é status: active , assim:

  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    

Observe o número ao lado ABCDEFGHIJKLMNABCDEFGHIJKLMN4 No início - Esta é a interface que sua conexão Ethernet está sendo executada.

Etapa 2: Crie o aplicativo AppleScript

No script abaixo, onde diz set wired_interface to "0" , altere o 0 para o número ao lado en na saída acima. (Deve ser 0; Se você estiver em um Mac Pro, ele pode ser 1.) também no script abaixo, no topo onde diz myusername , substitua o seu próprio nome de usuário do 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 salvar. Na folha de propriedade Salvar, defina o en0 como en1 e marque a caixa para en2 . Salve onde quiser - Desktop ou Aplicativos Pasta - Realmente não importa, basta saber onde você salvou.

Editor de aplicativos Salvar caixa de diálogo Mostrando o formato de arquivo definido como aplicativo e caixa verificada para ficar aberto após o manipulador

Etapa 3: criar os scripts do shell

próximo, terminal aberto. Digite os seguintes comandos:

  en3   

Cole a seguinte linha em:

  en4   

Pressione Control + x , digite y e pressione retorne para salvar e sair. Em seguida, execute este comando:

  en5   

e neste arquivo cole a seguinte linha:

  en6   

novamente, control + x , então y e return para salvar e sair.

Em seguida, insira estes comandos:

  en7   

Passo 4: Configuração ABCDEFGHIJKLMNABCDEFGHIJKLMN18 para ser executado sem uma senha

Deixando o comando terminal en9 executado sem uma senha pode ser muito perigoso. É por isso que as etapas acima criaram os scripts shell em seu próprio diretório, então o que pode realmente ser executado é limitado.

Digite o seguinte comando no terminal:

  status: active0   

Em seguida, digite sua senha de administrador quando solicitado.

Isso pode trazê-lo para uma tela (principalmente) em branco, ou pode ter algum texto nele. Se estiver em branco - tudo bem. Você apenas colará a linha abaixo no topo. Se o texto já existir, isso também é bom; Use sua seta para baixo para ir logo abaixo das linhas já no ABCDEFGHIJKLMNABCDEFGHIJKLMN21 seção, conforme visto na captura de tela abaixo.

Captura de tela do terminal mostrando o arquivo sudoers aberto no Pico

Aqui, adicione a seguinte linha:

  status: active2   

Em ambos os lugares onde status: active3 aparece, substitua-o pelo nome de usuário do Mac. Pressione Control + x , digite y e pressione return para salvar e sair.

Teste que estes arquivos ligam e desligados e desligam o tempo executando o seguinte comando (assumindo que a máquina do tempo está atualmente em):

  status: active4   

Após um momento, o ícone da máquina de hora no menubra deve ficar cinza, indicando que a máquina do tempo está desligada. (Você pode precisar clicar no ícone para refletir a mudança). Assumindo que isso funciona, execute este comando:

  status: active5   

e a máquina do horário deve ser reativado.

e fora você vai

Execute o aplicativo que você criou no Editor AppleScript acima, e permanecerá aberto, permitindo e desativando a máquina do tempo como Sua conexão interruptora de Ethernet para Wireless e Back. Para desativar a mudança, basta fechar o aplicativo AppleScript (clique com o botão direito do mouse no ícone no Dock e escolha Quit).

 

This is an alternative to the other script I posted. This one runs in the background and tests the network connection every two minutes to determine if it is using an Ethernet connection or wireless. If on Ethernet, it enables Time Machine; when the connection switches to wireless it disables Time Machine.

Step 1: System Check

While connected to Ethernet, you will need to run one command manually to confirm which interface Ethernet is assigned to. Run this command:

ifconfig 

It should output a screen full of information. What you are looking for is a section labeled en with a number after it, and whose last line is status: active, like this:

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 

Note the number next to en at the beginning - this is the interface that your Ethernet connection is running on.

Step 2: Create the AppleScript Application

In the script below, where it says set wired_interface to "0", change the 0 to the number next to en in the above output. (It should be 0; if you are on a Mac Pro, it may be 1.) Also in the below script, at the top where it says myusername, substitute your own Mac username.

-- 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 

xe2x8cx98+s to save. In the Save property sheet, set the File Format as Application, and check the box for Stay open after run handler. Save it wherever you like - Desktop, or Applications Folder - it really doesn't matter, just know where you saved it.

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

Step 3: Create the Shell Scripts

Next, open Terminal. Type the following commands:

cd ~/ mkdir TMSwitch cd TMSwitch pico TM_On.csh 

Paste the following line in:

defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE 

Press control+x, type y and press return to save and exit. Then run this command:

pico TM_Off.csh 

And in this file paste the following line:

defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE 

Again, control+x, then y and return to save and exit.

Next, enter these commands:

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

Step 4: Setting Up sudo to Run Without a Password

Letting the Terminal command sudo run without a password can be very dangerous. That's why the steps above created the shell scripts in their own directory, so what can actually be run is limited.

Enter the following command in Terminal:

sudo pico /etc/sudoers 

Then enter your administrator password when prompted.

This may bring you to a (mostly) blank screen, or it may have some text in it. If it's blank - that's fine. You'll just paste the below line at the top. If text already exists, that's also fine; use your down arrow to go right below the lines already in the # User privilege specification section, as seen in the below screenshot.

Terminal screenshot showing the sudoers file open in Pico

Here, add the following line:

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

In both places where <yourusername> appears, replace it with your Mac username. Press control + x, type y and press return to save and exit.

Test that these files turn Time Machine on and off by running the following command (assuming Time Machine is currently on):

sudo ./TM_Off.csh 

After a moment the Time Machine icon in the menubar should turn gray, indicating Time Machine is turned off. (You may need to click the icon for it to reflect the change). Assuming this works, run this command:

sudo ./TM_On.csh 

And Time Machine should be re-enabled.

And Off You Go

Run the application you created in AppleScript Editor above, and it will remain open, enabling and disabling Time Machine as your connection switches from Ethernet to wireless and back. To disable switching, simply close the AppleScript application (right-click on the icon in the Dock and choose Quit).

 
 
     
     
6
 
vote

Este AppleScript irá verificar se a conexão Ethernet está ativa e, em seguida, executar um backup de máquina de hora em caso afirmativo.

Primeiro, desative a máquina do tempo nas preferências do sistema. O método abaixo será executado automaticamente.

Enquanto conectado a Ethernet , você precisará executar um comando manualmente para confirmar qual interface Ethernet é atribuída. Execute este comando:

  status: active6   

Deve produzir uma tela cheia de informações. O que você está procurando é uma seção denominada status: active7 com um número depois dele, e cuja última linha é status: active8 , assim:

  status: active9   

Observe o número ao lado ABCDEFGHIJKLMNABCDEFGHIJKLMN30 No início - esta é a interface que sua conexão Ethernet está sendo executada. No script abaixo, onde diz 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 1 , substitua 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 2 com o número de cima. (Se você tiver um Mac Pro, provavelmente será 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 3 ou abcdefghijklmn44 . Caso contrário, provavelmente será 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 5 .)

  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 6   

Salve isto como 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 7 em sua pasta inicial ( 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 8 ).

próximo aberto terminal e digite o seguinte comando:

  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 9   

Isso abrirá um editor de texto para permitir que você agende este script para ser executado em uma base horária, assim como a máquina do tempo, por padrão. Cole esta linha:

  en0   

Pressione Control + x então digite en1 e pressione return para salvar e sair.

Para desativá-lo, volte para o terminal, novamente use o comando:

  en2   

Defete a linha adicionada acima e use as mesmas etapas para salvar e sair.

 

This AppleScript will check if the Ethernet connection is active, and then run a Time Machine backup if so.

First, disable Time Machine in System Preferences. The below method will run it automatically.

While connected to Ethernet, you will need to run one command manually to confirm which interface Ethernet is assigned to. Run this command:

ifconfig 

It should output a screen full of information. What you are looking for is a section labeled en with a number after it, and whose last line is status: active, like this:

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 

Note the number next to en at the beginning - this is the interface that your Ethernet connection is running on. In the script below, where it says en9, replace 9 with the number from above. (If you have a Mac Pro, it will most likely be en0 or en1. Otherwise, it will likely be 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 

Save this as EthernetTimeMachine.scpt into your home folder (/Users/<yourusername>/).

Next open up Terminal and type the following command:

pico ~/crontab 

This will open up a text editor to allow you to schedule this script to run on an hourly basis, just like Time Machine does by default. Paste this line:

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

Press control+X then type y and press return to save and exit.

To disable it, go back into Terminal, again use the command:

pico ~/crontab 

Then delete the line you added above and use the same steps to save and exit.

 
 
       
       
-1
 
vote

Você pode abrir a rede Prefs e verifique se Ethernet é a conexão superior na ordem de serviço. Você pode ver o que quero dizer nesta captura de tela, espero.

Então, se Ethernet estiver conectado, você deve sempre usá-lo como sua conexão principal.

Veja aqui como definir a prioridade do serviço: http://osxdaily.com/2013/06/15/set-network-connection-priority-mac-OS-X/

 

You can open you Network Prefs and make sure Ethernet is the top connection in the service order. You can see what I mean in this screenshot, I hope.

Then, if Ethernet is connected you should always use it as your primary connection.

See here for how to set the service priority: http://osxdaily.com/2013/06/15/set-network-connection-priority-mac-os-x/

 
 
 
 

Perguntas relacionadas

1  Crie uma ação rápida personalizada para criar um arquivo zip com senha  ( Create a custom quick action to create a zip file with password ) 
Como criar uma ação rápida personalizada para criar um arquivo zip com senha. Eu entendo, para criar um arquivo zip com a senha A seguinte linha de comando ...

1  App para rastrear horas em cada site de trabalho [FECHADO]  ( App to track hours in each work site ) 
. FECHADO. Esta questão é off-tópico . Atualmente não está aceitando respostas. Quer melh...

0  Correio: selecione Servidor SMTP automaticamente no destinatário  ( Mail select smtp server automatically on addressee ) 
Eu tenho dois servidores SMTP configurados no correio. Um para a escola e um para o meu email privado. Eu gostaria que esse email escolhe automaticamente o pa...

3  Existe alguma maneira de converter um monte de arquivos .ogg em uma pasta para .mp3 usando ffmpeg?  ( Is there any way to convert a bunch of ogg files in a folder to mp3 using ffmp ) 
Existe alguma maneira de converter uma pilha inteira de arquivos .ogg em cerca de 30 pastas em uma pasta contendo esses arquivos .mp3 e colocá-los em outra pa...

1  Remoção automática do furo do perfurador para PDFs digitalizados  ( Automatic punch hole removal for scanned pdfs ) 
Alguém sabe de uma ferramenta que pode automaticamente a granel remover furos de punção de PDFs digitalizados? Deve realmente fazer seu trabalho principalment...

8  Tenha o Mojave's Dark Mode Interruptor Pycharm Theme para Darcula  ( Have mojaves dark mode switch pycharm theme to darcula ) 
Existe uma maneira de acionar os aplicativos de terceiros para mudar para temas escuros quando o modo escuro é ligado em MacOS Mojave? Especificamente, poss...

18  Como atualizar o aplicativo App Store a partir da linha de comando?  ( How to update app store application from command line ) 
Eu gostaria de forçar uma atualização de aplicativos de aplicativos da linha de comando. Como posso fazer isso? ...

3  Usando a Apple Remote Desktop para gerenciar dispositivos iOS?  ( Using apple remote desktop for managing ios devices ) 
im atualmente avaliando usando a Apple Remote Desktop para multi laptop e gerenciamento de desktop. Também pode ser usado para gerenciamento de dispositivos i...

2  Impedir que a exibição desligue com determinados aplicativos  ( Prevent display from turning off with certain applications ) 
Eu tenho um MacBook Pro, e durante apresentações de mídia, minha tela desliga automaticamente de acordo com o aplicativo de configurações (o que é claro é a o...

4  Envie cliques para vários Windows / Espaços  ( Send clicks to multiple windows spaces ) 
Existe uma maneira de duplicar ou enviar cliques para várias janelas ou espaços (específicos)? Por exemplo, um script AutoHotKey pareceria o seguinte para f...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.