Remote-Befehl mit Argumenten und Shell mit ssh ausführen


1

Ich versuche, einen Remote-Befehl mit ssh auszuführen.

Ich brauche die Shell, die den Befehl zum Laden von .bashrc ausführt. Bis jetzt habe ich gelernt, dass ich verwenden kann bash -lc dafür. Das Problem ist, dass ich einen Befehl ausführen kann, aber seine Argumente ignorieren kann

Im Allgemeinen möchte ich pm2 (Produktionsprozessmanager für Node.js) ausführen. mit einem Listenparameter, um mir die verfügbaren laufenden Aufgaben anzuzeigen.

wenn ich ausführen

ssh ufk@10.0.0.3 bash -lc pm2 list

oder

ssh ufk@10.0.0.3 bash -lc "pm2 list"

Ich bekomme die gleichen Ergebnisse. Es führt die Anwendung so aus, als ob ich überhaupt keine Argumente angegeben hätte.

hier habe ich pm2 das Argument 'list' zur Verfügung gestellt.

irgendwelche Ideen?


Sie benötigen eine Kombination aus starken und schwachen Anführungszeichen um Ihre bash-Anweisung. ssh ufk@10.0.0.3 "bash -lc 'pm2 list'"
fd0

Antworten:


2

Wie wäre es mit: ssh ufk@10.0.0.3 "bash -lc 'pm2 list'"


gleiche Ergebnisse wie zuvor
ufk

ssh ufk@10.0.0.3 "bash -lc 'pm2 list'" funktioniert! :) Vielen Dank
ufk

@ufk, wenn Sie im Befehl Variablen verwenden möchten, verwenden Sie "bash -lc \"$cmd\""
theoden

Wie verwende ich pm2 aus einem Remote-Shell-Skript? Ich bekomme immer PM2: Befehl nicht gefunden
user137717
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.