SSH в машину и искать процесс, убить с помощью xargs

Я делаю это,

guastest@iridium06.psc ~> ssh <machine> jps | gawk '$2 == "<process>" {print $1}' | xargs kill
kill: sending signal to 75797 failed: No such process
guastest@iridium06.psc ~> echo $?
123

Но работает, если я так выразился

ssh <machine> "jps | gawk '\$2 == \"<process>\" {print \$1}' | xargs kill "

Почему это так?

1 ответ

Ваша вторая версия команды отправляет всю команду (в " .... ") на сервер, чтобы выполнить там, ваша первая версия отправляет только первую часть jps на сервер, а затем выполняет оставшуюся команду, используя вывод на локальном компьютере.

Другие вопросы по тегам