Manipular mensagens de erro de comando de compactação no AIX

1

Estou trabalhando em um problema de produção e não consigo reproduzir a mensagem de erro para o comando compress.

Solução Atual

Temos block case-esac no wrapper shell que manipula mensagens da seguinte forma:

case "$MSG" in
    "This file is not changed; compression does not save space.")
            echo "$MSG"
            ;;
    *unchanged*)
            echo "$MSG"
            ;;
    *)
            echo ERROR
            ;;
esac

Cenário do Problema

O comando compress quando chamado através do wrapper (para alguns arquivos) produz uma mensagem de erro (digamos, Tipo 1 );

 -- file unchanged

No entanto, a execução do mesmo comando (para o mesmo conjunto de arquivos) na linha de comando produz uma mensagem de erro diferente (digamos, Tipo 2 );

This file is not changed; compression does not save space.

Alguém pode me ajudar a entender esse comportamento? Se possível, sugerir a reprodução da mensagem de erro Tipo 1

    
por nvarun 26.02.2015 / 14:12

1 resposta

0

A mensagem "não economiza espaço" provavelmente seria mostrada para os casos em que o programa examina o tamanho dos blocos do sistema de arquivos no qual você está compactando e percebe que o número de blocos no arquivo resultante arquivo é o mesmo. Você pode ver um comportamento similar com o programa zip. Recusando-se a compactar o arquivo, o desenvolvedor supôs que estava melhorando o desempenho.

Com mais freqüência, os utilitários de compactação simplesmente verificam se o arquivo resultante seria menor (já que o algoritmo de compactação adiciona uma tabela, que é a sobrecarga).

Por exemplo, a página de manual da IBM mostra que a compactação possui opções -f / -F (consulte link ) que força

.

Por fim, "já compactado" vem quando o utilitário inspeciona o arquivo e percebe o sufixo ou o fato de que o arquivo começa com os códigos que indicam que ele está compactado.

    
por 03.03.2015 / 10:49