Ich schreibe ein Shell-Skript, in dem ich eine Datei auf einem Remote-Computer über ein Shell-Skript löschen muss.
Manuell fließen:
ssh username@domain.com
.. dann bei domain:
cd ./some/where
rm some_file.war
Wie kann man diese Aufgabe erfüllen?
ssh
shell-script
mico
quelle
quelle
-f
zurrm
Ausführung von Remote-Aufrufen hinzufügen ?rm
ihnen Warnungen oder Fehler ausgegeben werden , sollten diese auf jeden Fall an den Anrufer weitergeleitet werden, es sei denn, der Benutzer weiß, was ihn erwartet und warum er etwas außer Kraft setzt. Viele Fehler und späteres frustrierendes Debuggen können vermieden werden, indem Sie nur die Optionen verwenden, die Sie in einem bestimmten Szenario benötigen.-f
Option torm
ist--force
eine Abkürzung für und bewirkt, dass für nicht vorhandene Dateien oder falsche Argumente Fehler ausgegeben werden. Normalerweise werden Befehle über nicht interaktive Shells ausgeführt, die standardmäßig ohnehin weniger interaktiv sind. Wenn dies jedoch nicht der Fall ist oder Sie eine interaktive Eingabeaufforderung erhalten, müssen Sie die Einstellungen korrigieren, die in direktem Zusammenhang damit stehen. Wenn Sie dieses Skript schreiben, sollten Sie dieses Problem ohnehin nicht haben, und wenn Sie sich in einer interaktiven Shell befinden (in der die Möglichkeit von katastrophalen Tippfehlern besteht), sollten Sie-I
on verwenden--interactive=never
, um das gewünschte Verhalten festzulegen.Wenn Sie eine entfernte Datei mit sudo löschen möchten, müssen Sie Folgendes ausführen:
Einzelheiten .
quelle
Der Befehl ssh verfügt über einen Befehlsparameter (letzter Parameter im Befehl), mit dem Sie Remote-Befehle ausführen können.
quelle
Richten Sie kennwortlose Schlüssel ein und fügen Sie den Befehl als Teil des Befehls ssh hinzu. Siehe: http://www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/
quelle