Comecei a baixar um grande arquivo em segundo plano usando
$ nohup wget http://example.tld/big.iso &
o que também me fornece um nohup.out
arquivo que inclui a saída de wget
.
Agora, se mais tarde eu quiser assistir ao processo de download, eu poderia usar, $ tail -f nohup.out
mas isso preenche minha janela do terminal mais rápido do que eu gostaria. O que eu gostaria de ver é a última linha em constante atualização (assim como no uso wget
sozinho).
Eu tentei, $ tail -n 1 -f nohup.out
mas parece afetar apenas a cauda inicial.
De um modo geral, se for possível limitar (neste caso a 1) o número de linhas que a saída de um comando tem disponível / visível, isso resolveria esse problema. É como ter a saída em um buffer circular - basta pensar na barra de progresso normal que $ wget example.tld/big.iso
seria impressa.
Existe essa solução?
Ou estou subindo na árvore de maneira errada? (Ou seja, seria mais fácil limitar nohup
a produção ou fazer outra coisa?)
tail
processo a cada segundo, que pode ou não ser algo importante para você. Além disso, certifique-se de especificar um intervalo de segundos (por exemplowatch -n 0.1
) para simular a parte "atualização constante". (Isso obviamente aumenta também o número de processos e as chamadas de abertura de arquivo.) Finalmente, se você estiver usando o OS X, poderá obter owatch
MacPorts, pois ele não está disponível por padrão.watch
em uma nova janela do terminal. Também descobri que usartail -n 2
é mais útil do que-n 1
comwget
, pelo menos comwatch
intervalo de 1 segundo, porque, caso contrário, a porcentagem mais recente pode não ser vista; isso não é uma falha na sua resposta, mas eu mencionei isso se outra pessoa decidir assistir à saída do nohup.tail
processo provavelmente não é muito exagero; mas, como resposta geral, é bom levar isso em consideração. Também observei quewatch -n 0.1
não funcionou, maswatch -n 0,1
funcionou - pode haver localidades aplicadas, embora eu não tenha visto localidades aplicadas às opções de comando do terminal antes. Como uma nota lateral:brew install watch
funcionou muito bem :-)watch
irá funcionar com0,1
ou0.1
depende das configurações do seu código de idioma (ele usa o símbolo decimal definido para o seu código de idioma). VerifiqueLC_ALL=C watch -n 0.1 "date +%S.%N"
.Existem certas seqüências de controle do Xterm que você pode usar para limitar as linhas do seu terminal que são roladas. Procure por "Definir região de rolagem". No entanto, é um pouco de confusão. Certifique-se de redefinir seu terminal posteriormente:
fonte
tail -f
ainda preenche o buffer e também porque o terminal precisa ser reiniciado posteriormente. Isso não é tão inline quanto eu esperava, mas, caso contrário, pode ser o que eu procurei.Se você não deseja que a saída ocupe toda a janela atual do terminal, use um
while
loop simples :fonte
scrollTtyOutput
(ou similar).