Recentemente, tive que fazer uma alteração nos sinalizadores de linha de comando de um serviço de escalonamento automático. Quando implementei a mudança, ele criou 6 instâncias, então, em vez de manualmente ssh’ing em cada caixa para executar alguma combinação de ps e grep, encontrei uma solução melhor: pssh, lista de hosts inline e pgrep.
O resultado final foi:
pssh -P -O StrictHostKeyChecking=no $(service-hosts --az uk --env live --service that-service) pgrep -f Europe/London
Onde:
pssh
é o ssh paralelo-P
imprime a saída, neste caso o pid do processo encontrado-O StrictHostKeyChecking=no
desativa a verificação de impressão digital ssh, necessária porque essas são caixas novas em que eu nunca ssh’ed antesservice-hosts..
é minha maneira de obter os IPs das instâncias no grupo de escalonamento automático para os parâmetros especificados, que geram algo como-H 10.0.0.2 -H 10.0.0.3 ...
pgrep
é grep para processos-f
corresponde a todo o comando, em vez de apenas seu nomeEurope/London
é o que eu estava verificando;)