Como escrever em um arquivo com o netcat? E configurá-lo para crescer até um certo tamanho e começar a se sobrescrever?

3

Atualmente, estou escrevendo um programa que imprime em uma impressora Zebra. Como meu escritório não tem uma impressora zebra, imprimimos em uma VM linux executando netcat com nc -k -l -p 9100 | tee labels.txt , para que possamos visualizar a saída para a impressora e verificar a exatidão.

Infelizmente, esse arquivo fica muito grande e ocupa muito espaço na VM, especialmente porque ninguém se lembra de limpá-lo.

Usar tee parece ser uma boa opção para gravar em um arquivo, mas ele não é muito exibido da maneira que eu gostaria. Eu gostaria que o label.txt crescesse apenas até um certo tamanho (digamos, 20 MB), quando começa a sobrescrever-se. Ou talvez renomeie label.txt para label.txt.1 , permitindo que o label.txt cresça e, em seguida, sobrescreva label.txt.1 .

Existe alguma maneira de fazer isso com netcat / tee ? Ou eu deveria estar olhando para outro programa?

    
por Mitch 03.10.2014 / 19:37

2 respostas

1

Respondendo sua pergunta, não há recursos em netcat ou tee para conseguir isso.

Talvez você possa escrever um cron job, que é executado a cada minuto e verifica o tamanho do label.txt e, quando atingir 20 MB, apaga os primeiros 10 MB.

    
por 03.10.2014 / 19:55
1

Existem alguns passos para o que você deseja.

Primeiro, você precisará colocar nc -k -l -p 9100 | tee labels.txt em um script e adicionar um manipulador para SIGHUP para reiniciar o comando.

Em seguida, você precisará configurar logrotate para, bem, girar os registros.

    
por 03.10.2014 / 21:36

Tags