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
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
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
Tags compression tar shell