O comando
ESBLOGENTRY='top -b -n 1 -c|grep " DataFlowEngine"|grep -v grep| gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }'|grep ACES_KOFAX_TCM_DRS|sed 's/[ ]*$//''
assume que a saída de top
incluirá pelo menos essas duas sequências:
DataFlowEngine ACES_KOFAX_TCM_DRS
que tem 34 caracteres. Em uma verificação rápida, top
está me mostrando o comando começando na coluna 64. Mas top
está me mostrando apenas linhas de até 80 colunas. Se o seu ambiente definir $COLUMNS
como um valor mais amplo, top
provavelmente usará esse valor (e, em uma verificação rápida, é o que acontece com o Debian 7). A top
página de manual diz que, se você usar um -w
opção, será padronizado para 512 colunas, mas não diz nada sobre a largura padrão sem a opção.
Quando as linhas são encurtadas, o grep para ACES_KOFAX_TCM_DRS
falha, fazendo com que o script retorne uma string vazia. Se você usa uma opção -w
, seu script deve funcionar de forma mais consistente.
Como alternativa, altere o comando para
ESBLOGENTRY='COLUMNS=128 top -b -n 1 -c|grep " DataFlowEngine"|grep -v grep| gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }'|grep ACES_KOFAX_TCM_DRS|sed 's/[ ]*$//''
definiria o ambiente para top
(sem interferir em outros programas).