Per SSH auf eine Maschine zugreifen, nach Prozess suchen und mit xargs beenden

Per SSH auf eine Maschine zugreifen, nach Prozess suchen und mit xargs beenden

Ich mache das,

[email protected] ~> ssh <machine> jps | gawk '$2 == "<process>" {print $1}' | xargs kill
kill: sending signal to 75797 failed: No such process
[email protected] ~> echo $?
123

Aber es funktioniert, wenn ich es so sage

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

Warum ist das so ?

Antwort1

Ihre zweite Version des Befehls sendet den gesamten Befehl (in " .... " ) an den Server, um dort ausgeführt zu werden, Ihre erste Version sendet nur den ersten Teil jpsan den Server und führt dann den Rest des Befehls mithilfe der Ausgabe auf dem lokalen Computer aus.

verwandte Informationen