Loops de Bash e Editores de Texto

1

Eu tenho um punhado de servidores que têm um arquivo de log que eu gostaria de monitorar. Como o projeto é novo e a maioria dos erros até agora tem sido única, gostaria de monitorar esses registros manualmente por um tempo. Eu estava esperando economizar um pouco de tempo colocando todos os IPs para monitorar em um arquivo de texto, depois fazendo algo simples como:

#!/bin/bash
while read ip; do
    scp user@"$ip":/var/log/file.log ./
    nano -w file.log
    rm -f file.log
done < ips.txt

No entanto, o Nano (e o Vi) são desativados, pois parece que o loop de Bash não espera que eu os saia antes de continuar com o próximo comando.

Como faço para que o loop de Bash espere que eu saia do editor de texto antes de continuar? Sinta-se à vontade para ser técnico em explicar a resposta; parte da razão pela qual eu estou perguntando é porque eu não sei o suficiente sobre o Bash para saber por que isso está acontecendo, mas eu gostaria de saber.

    
por Hammer Bro. 06.03.2012 / 19:27

3 respostas

1

Eu acho que sei o que é. Como você está redirecionando a entrada para o loop while, o nano não vê mais o seu terminal no stdin. Tente substituir

nano -w file.log

com

nano -w file.log < /dev/tty
    
por 07.03.2012 / 01:57
0

Considere ...

#!/bin/bash
while read ip; do
    scp user@"$ip":/var/log/file.log ./
    nano -w file.log && rm -f file.log
done < ips.txt

O && aguardará um comando ser concluído com sucesso (retornar com 0) antes de fazer as instruções à direita dele.

edit: woops, depois de executar o comando, o @glennjackman está certo. Além disso, se você quiser aprender algumas coisas, considere a leitura do Bash para iniciantes do TLDP e < a href="http://tldp.org/LDP/abs/html/"> Bash avançado do TLDP

    
por 06.03.2012 / 20:14
0

Envolva-o em uma chamada para time

Exemplo:

time nano -w file.log

Haverá alguma saída vomitada, o que eu suponho que você poderia redirecionar para / dev / null se quiser, mas o "tempo" deve ser considerado ainda em execução, diferentemente da maneira como os editores se comportam.

    
por 07.03.2012 / 00:43

Tags