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 [email protected] bash -lc pm2 list

oder

ssh [email protected] 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?

ufk
quelle
Sie benötigen eine Kombination aus starken und schwachen Anführungszeichen um Ihre bash-Anweisung. ssh [email protected] "bash -lc 'pm2 list'"
fd0

Antworten:

2

Wie wäre es mit: ssh [email protected] "bash -lc 'pm2 list'"

albal
quelle
gleiche Ergebnisse wie zuvor
ufk
ssh [email protected] "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