Como correr ou repetir um comando linux a cada x segundos para sempre

Como correr ou repetir um comando linux a cada x segundos para sempre

Um administrador do sistema geralmente precisa executar um comando repetidamente em certos períodos de tempo. Freqüentemente, essas tarefas podem ser facilmente concluídas com comandos cron simples. Na maioria dos casos, isso deve funcionar, mas o período mais curto que você pode executar o comando cron é a cada 1 minuto. Acredite ou não, em muitos casos, isso é muito lento.

Execute o comando linux a cada segundo

Neste tutorial, você aprenderá uma simples técnica de script para monitorar ou ficar de olho em um comando específico em estado em execução continuamente semelhante ao comando superior (monitore continuamente o processo e a utilização da memória) a cada 3 segundos por padrão.

Não vamos parar para discutir os motivos, por que você precisaria executar comandos isso com frequência. Eu acredito que todos têm motivos diferentes para isso em seus empregos diários ou mesmo em PCs e laptops em casa.

1. Use o comando Watch

Assistir é um comando Linux que permite executar um comando ou programa periodicamente e também mostra a saída na tela. Isso significa que você poderá ver a saída do programa a tempo. Por padrão, o relógio reencontre o comando/programa a cada 2 segundos. O intervalo pode ser facilmente alterado para atender aos seus requisitos.

Monitore o uso da memória

"Watch" é extremamente fácil de usar, para testá -lo, você pode iniciar um terminal Linux imediatamente e digitar o seguinte comando:

# Assista grátis -m 

O comando acima verificará o seu sistema Livre Memory e atualizará os resultados do comando gratuito a cada dois segundos.

Monitore o uso da memória no Linux

Como visto de acordo com a saída acima, você tem um cabeçalho, exibindo informações sobre (da esquerda para a direita) intervalo de atualização, comando que está sendo executado e horário atual. Se você deseja esconder este cabeçalho, pode usar o -t opção.

A próxima pergunta lógica é - como alterar o intervalo de execução. Para esse fim, você pode usar o -n opção, isso especifica o intervalo com o qual o comando será executado. Este intervalo é especificado em segundos. Então, digamos que você queira executar seu roteiro.sh Arquive a cada 10 segundos, você pode fazer assim:

# Watch -n 10 script.sh 

Observação que se você executar o comando como mostrado acima, você precisará cd para o diretório (aprenda, aprenda 15 exemplos de comando CD) onde o script está localizado ou especifique o caminho completo para esse script.

Outras opções úteis do comando Watch são:

  1. -b - cria um som de bipe se a saída do comando for diferente de zero.
  2. -c - Interpreta sequências coloridas ANSI.
  3. -d - destaca as mudanças na saída do comando.

Monitor Usuários conectados, tempo de atividade e média de carga

Digamos que você queira monitorar os usuários conectados, o tempo de atividade do servidor e carregar a saída média em fase continuamente a cada poucos segundos e depois usar o seguinte comando como mostrado:

# Assista a Uptime 
Assista Linux Carregar Média

Para sair do comando, pressione Ctrl+c.

Aqui o 'tempo de atividade' O comando será executado e exibirá os resultados atualizados a cada 2 segundos por padrão.

Monitore o progresso do comando de cópia

No Linux, enquanto copia arquivos de um local para outro usando cp Comando, o progresso dos dados não é mostrado, para ver o progresso dos dados sendo copiados, você pode usar o assistir comando junto com o comando du -s para verificar o uso do disco em tempo real.

# cp ubuntu-15.10-DESKTOP-AMD64.ISO/Home/Tecmint/& # Watch -N 0.1 du -s/home/tecmint/ubuntu -15.10-DESKTOP-AMD64.ISO 
Monitore o progresso do comando de cópia

Se você acha que o processo acima é muito complicado para alcançar, sugiro que você opte por um comando de cópia antecipada, que mostra o progresso dos dados enquanto copiava.

2. Use o comando do sono

O sono é frequentemente usado para depurar scripts de shell, mas também tem muitos outros propósitos úteis. Por exemplo, quando combinado com para ou enquanto Loops, você pode obter resultados incríveis.

Se você é novo no Bash Script, pode verificar nosso guia sobre os loops de festa aqui.

Caso esta seja a primeira vez que você ouve sobre o "dormir" Comando, é usado para atrasar algo por uma quantidade especificada de tempo. Nos scripts, você pode usá -lo para dizer ao seu script para executar o comando 1, aguarde 10 segundos e depois execute o comando 2.

Com os loops acima, você pode dizer ao Bash para executar um comando, dormir para N quantidade de segundos e depois execute o comando novamente.

Abaixo, você pode ver exemplos de ambos os loops:

para exemplo de loop

# para i em 1… 10; eco -n "Este é um teste em loop $ i"; data ; sono 5; feito 

O revestimento acima, executará o comando ECHO e exibirá a data atual, total de 10 vezes, com 5 segundos de sono entre execuções.

Aqui está uma saída de amostra:

Este é um teste em loop 1 Qua 17 de fevereiro 20:49:47 EET 2016 Este é um teste no loop 2 Qua 17 de fevereiro 20:49:52 EET 2016 Este é um teste em loop 3 Qua 17 de fevereiro 20:49:57 EET 2016 Este é um teste em loop 4 Qua 17 de fevereiro 20:50:02 EET 2016 Este é um teste em loop 5 Qua 17 de fevereiro 20:50:07 EET 2016 Este é um teste em loop 6 Qua 17 de fevereiro 20:50:12 EET 2016 Este é um teste em loop 7 Qua 17 de fevereiro 20:50:17 EET 2016 Este é um teste em Loop 8 Qua 17 de fevereiro 20:50:22 EET 2016 Este é um teste em Loop 9 Wed 17 fev 17 20:50: 27 EET 2016 Este é um teste em loop 10 Qua 17 de fevereiro 20:50:32 EET 2016 

Você pode mudar o eco e data comandos com seus próprios comandos ou script e altere o intervalo de sono de acordo com suas necessidades.

enquanto exemplo de loop

# enquanto é verdade; eco -n "Este é um teste de while loop"; data; sono 5; feito

Aqui está a saída de amostra:

Este é um teste de While Loopwed 17 de fevereiro 20:52:32 EET 2016 Este é um teste de tempo no tempo em 17 de fevereiro 20:52:37 EET 2016 Este é um teste de while loopwed 17 de fevereiro 20:52:42 EET 2016 Um teste de while loopwed 17 de fevereiro 20:52:47 EET 2016 Este é um teste de enquanto o loopwed 17 de fevereiro 20:52:52 EET 2016 Este é um teste de while loopwed 17 de fevereiro 20:52:57 EET 2016 

O comando acima será executado até que seja morto ou interrompido pelo usuário. Pode ser útil se você precisar executar um comando em execução em segundo plano e não quiser contar com Cron.

Importante: Ao usar os métodos acima, é altamente recomendável que você defina o intervalo por tempo suficiente para dar tempo suficiente ao seu comando para terminar de executar, antes da próxima execução.

Conclusão

As amostras deste tutorial são úteis, mas não devem substituir completamente o utilitário Cron. Cabe a você descobrir qual deles funciona melhor para você, mas se tivermos que separar o uso de ambas as técnicas, eu diria o seguinte:

  1. Use Cron quando precisar executar comandos periodicamente, mesmo após as reinicializações do sistema.
  2. Use os métodos explicados neste tutorial para programas/scripts que devem ser executados na sessão atual do usuário.

Como sempre, se você tiver alguma dúvida ou comentário, não hesite em enviá -los na seção de comentários abaixo.