Classificando serviços no Linux

1

Eu tenho alguns servidores Linux, todos executando serviços diferentes. Quando executo service --status-all , recebo algumas telas de saída. Eu pensei que seria inteligente e canalizaria para sort , e veria como um grupo quais serviços foram iniciados, não iniciados ou desconhecidos. Executei o comando, mas ele apenas classificou as entradas [ ? ] na parte superior e todas as entradas [ - ] e [ + ] estão agrupadas em uma única confusão!

O comando que usei foi service --status-all | sort . Existe uma maneira melhor de classificar os sinais de Mais e Menos?

Isto é especificamente em uma caixa Debian, executando apenas a linha de comando

    
por Canadian Luke 04.10.2013 / 18:14

1 resposta

2

Parece que service --status-all grava os resultados de [ + ] e [ - ] para stdout, mas os resultados de [ ? ] para stderr. Portanto, para usar sort para classificar todos eles, você terá que combinar os fluxos stdout e stderr desta forma:

service --status-all 2>&1 | sort

A classificação é afetada pelo valor de LC_COLLATE , que por padrão é igual à sua configuração LANG . Se você não quiser alterar o valor de LC_COLLATE para todos os seus aplicativos, mas quiser que essa lista seja classificada por + , - e ? , use este comando:

service --status-all 2>&1 | LC_COLLATE=C sort

Para definir LC_COLLATE para todos os seus aplicativos, coloque isso no seu ~/.profile , ~/.bash_profile ou qualquer script que tenha origem para definir seu ambiente no login:

export LC_COLLATE=C
    
por 04.10.2013 / 18:39

Tags