Comprimir continuamente um fluxo stderr

2

Existe alguma maneira de comprimir continuamente a saída de um programa (quase em tempo real)?

Por exemplo, eu tenho este programa que produz (muito) saída para stderr. Eu quero fazer algo como ./my-program 2> tar -<someoptions> stderroutput.tar.gz

    
por anand.trex 24.02.2012 / 23:27

2 respostas

2

Se bem entendi, você deseja compactar o conteúdo do fluxo de erro padrão e salvá-lo em um arquivo. Em caso afirmativo, tente isto: ./my-program 2>&1 | gzip > stderroutput.gz

    
por 24.02.2012 / 23:44
2

tar não compacta dados; Ele é projetado apenas para arquivar vários arquivos em um. Para compactar fluxos, você precisaria usar gzip , xz , bzip2 ou similar. (Embora gzip tenha a pior taxa de compactação, ela também é uma das mais rápidas, por isso pode ser a melhor escolha aqui.)

Por exemplo:

myapp 2> >(gzip > stderr.gz)

ou

(myapp 2>&1 1>&3 | gzip > stderr.gz) 3>&1
    
por 24.02.2012 / 23:45