Назад | Перейти на главную страницу

Как убить процессы на удаленной машине * nix

Я хотел бы выполнить команду kill на многих машинах * nix. Я пытаюсь сделать что-то вроде этого:

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

Но это вызывает команду kill на локальном компьютере, а не на удаленном. Я тоже пробовал что-то вроде этого:

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

Но и у меня это не работает.

Предполагая, что вы работаете на машинах, на которых он есть, вы также можете использовать более конкретную утилиту, например pgrep или pkill. Это означает, что вам не нужно использовать grep, awk или xargs. Это немного упростило бы ситуацию.

http://linux.about.com/library/cmd/blcmdl1_pkill.htm

rsh "удаленная машина" pkill, какой бы ни был процесс

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

Я отказываюсь использовать любой другой метод удаленной консоли, кроме SSH. Это тоже практически везде.

На всякий случай я бы рекомендовал вам использовать SSH. RSH отправляет пароли в открытом виде, SSH намного безопаснее.

В любом случае вам нужно будет экранировать символы, которые интерпретирует локальная оболочка. А именно те трубы. И одинарные кавычки. И знак доллара. Я думаю, что фигурные скобки - это нормально, но я, вероятно, буду параноиком и сделаю эти две. Если этого не сделать, команда RSH будет передана только в первый канал, а затем выходные данные этой команды будут переданы локально в grep, awk и т. Д.

Это команда, которая раздражает. Попробуй это:

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


- Кристофер Карел

Это возможно на машине Windows с помощью taskkill, pskill или другой команды :) К сожалению, на машине Linux / UNIX это невозможно без использования ssh, rsh или другого инструмента удаленного сеанса.