Parece que o logrotate está canalizando para o compresscmd, então você precisará escrever um script que possa manipular o pipe. Tenho certeza de que o perl / python poderia fornecer uma solução mais elegante, mas aqui está o que eu consegui preparar no bash:
com
compresscmd /root/mycompress.bash
mycompress.bash:
#!/bin/bash
## set the field separator to NULL
IFS=''
## read the pipe into an array
ARRAY=()
while read LINE
do
ARRAY+=($LINE)
done
## echo the array and pipe to desired commands
for item in ${ARRAY[*]}
do
echo $item
done | cstream | gzip -9
atualização:
Após a reflexão, o uso de uma matriz para armazenamento temporário é desnecessário, portanto, o código acima pode ser reduzido para:
#!/bin/bash
## set the field separator to NULL
IFS=''
while read LINE
do
echo $LINE
done | cstream
após reflexão adicional, porque o cstream manipula os pipes muito bem por si próprio, o mycompress.bash pode ser reduzido para:
#!/bin/bash
cstream | gzip