O redirecionamento acontece na máquina de chamada, não na máquina remota, portanto, o arquivo resultante será local. Além disso, o grep
não precisa ser executado remotamente:
while read -r host; do
ssh "$host" ps -ef | grep "defunct" >"output.$host"
done <hosts.txt
Isso executa ps -ef
em cada host e grep
extrairá as linhas defunct
de saída. O grep
será executado localmente, não remotamente. O arquivo de resultado, da mesma forma, é criado localmente.
Se você quiser um único arquivo de saída:
while read -r host; do
ssh "$host" ps -ef | grep "defunct"
done <hosts.txt >output.txt
Ou mesmo (para uma única invocação de grep
)
while read -r host; do
ssh "$host" ps -ef
done <hosts.txt | grep "defunct" >output.txt