Limpar a janela do terminal antes da saída do tail -f

0

Eu tenho o seguinte script executando a cada 3 minutos com o cron:

#!/bin/bash
cd ~/Documents/Fetch/
wget remotehost/data.txt --output-document=tmp
cp tmp data.txt
rm tmp

Para buscar um registro php gerado automaticamente.

Quero verificar se alguma alteração foi feita no arquivo (com um intervalo de tempo de 3 minutos). Então, em um terminal na minha segunda tela, estou executando tail -f ~/Documents/Fetch/

Agora, se nenhuma alteração for feita no arquivo data.txt, o tail exibirá o mesmo log repetidamente, separado por tail: /home/midas/Documents/Fetch/data.txt: file truncated .

existe uma maneira de informar tail para clear da tela do terminal antes de mostrar a saída quando o arquivo é truncado?

Eu basicamente quero que isso aconteça:

  1. cauda imprime o conteúdo inicial
  2. cauda percebe que o arquivo está truncado > %código%
  3. tail imprime o conteúdo que vê após o truncamento do arquivo.

A página clear não parece me dar essa opção.

Alguém tem experiência com isso?

Eu sei que isso bate o propósito da própria cauda, mas posso imaginar algumas situações em que isso seria útil.

    
por Midas 23.06.2015 / 23:31

1 resposta

3

Se o seu conteúdo é relativamente curto (menos de uma tela do terminal, para qualquer número de linhas no seu terminal), então você pode executar o tail repetidamente

watch -n 30 'tail /path/to/filename 2>&1'

Isso executa o tail a cada 30 segundos. Você pode querer usar um intervalo diferente (o padrão é 2 segundos, mas como você tem uma granularidade de geração de 3 minutos, não há muito sentido em tê-lo tão baixo).

Para alterações sutis, o sinal -d também pode ser útil para destacar as diferenças.

    
por 24.06.2015 / 00:18

Tags