Como matar processos em uma máquina remota * nix

1

Eu gostaria de emitir um comando kill em muitas máquinas * nix. Estou tentando fazer algo assim:

rsh <remotemachine> ps -ef | grep <somepattern> | awk '{print $2}' | xargs n1 -t -i kill {}

Mas isso emite o comando kill na máquina local, não na máquina remota. Eu também tentei algo assim:

rsh <remotemachine> kill $(ps -ef | grep <somepattern> | awk '{print $2}')

Mas isso não está funcionando para mim também.

    
por JamesG 25.06.2010 / 22:41

4 respostas

6

Supondo que você esteja trabalhando em máquinas que o possuem, você também pode usar um utilitário mais específico, como pgrep ou pkill. Isso significa que você não precisa usar grep, awk ou xargs. Isso simplificaria bastante as coisas.

link

rsh "remotemachine" pkill que é o nome do processo

    
por 25.06.2010 / 23:40
3

usuário ssh @ someserver "ps -ef | grep | awk '{print $ 2}' | xargs n1 -t -i kill {}"

Recuso-me a usar qualquer outro método de console remoto além do SSH. Também é praticamente em todo lugar.

    
por 25.06.2010 / 23:04
1

De um modo aleatório, recomendo que você use o SSH. O RSH envia senhas claramente, o SSH é muito mais seguro.

De qualquer forma, você precisará escapar de caracteres que o shell local irá interpretar. Ou seja, esses tubos. E as citações simples. E o cifrão. Eu acho que as chaves são boas, mas eu provavelmente ficaria paranoica e faria as duas. Se isso não for feito, o comando RSH será transmitido apenas para o primeiro canal, e a saída desse comando será canalizada localmente para grep, awk, etc.

Este é o tipo de comando que fica irritante. Tente isto:

rsh <remotemachine> ps -ef \| grep <somepattern> \| awk \'\{print \\}\' \| xargs n1 -t -i kill \{\}


- Christopher Karel

    
por 25.06.2010 / 23:00
0

Isso é possível na máquina Windows com taskkill, pskill ou outro comando :) Lamentavelmente, não é possível na máquina Linux / UNIX sem usar o ssh, rsh ou outra ferramenta de sessão remota.

    
por 31.05.2016 / 00:02