Linux: via script auf einen anderen Server zugreifen und dort Aktionen ausführen?

5 Antworten

Das geht auch nicht, da Dein Skript lokal ausgeführt wird und nicht auf dem entfernten Rechner. Der Vorschlag von Lamanini ist der richtige Ansatz!

Carpy014 
Fragesteller
 25.05.2023, 11:26

Hallo bmke2012,
OK, danke für den Hinweis.
Gruß

0

Du kannst die entfernten Aktionen dem Befehl zum Einloggen mitgeben, z.B.

ssh entfernter_rechner  "mkdir /home/du/verzeichnis"

mehrere Befehle nacheinander kannst du mit ";" voneinander trennen.

Woher ich das weiß:Berufserfahrung – LPI zertifiziert
derMeier  25.05.2023, 14:20

oder in seinem Fall, mit dem Parameter "-p" um "Parent-" also übergeordnete Ordner zu erstellen:

ssh user@rechner "mkdir -p /home/verzeichnis_1/verzeichnis_2"
0
Bushmills145  25.05.2023, 14:27
@derMeier

Es scheint, als ob verzeichnis_1 schon bestand, denn er wollte ja direkt dort hinein wechseln.

0

Du musst bei home in das Verzeichnis des Benutzers mit dem du dich auf dem 2ten Server Eingeloggt hast Bewegen, nicht ins home alleine . Dazu hast du als angemeldeter Benutzer keine Rechte.

Home liegen alle Benutzer ab die auf dem Server X Angelegt wurden.

Root hat ein eigenes.

Da du nur ein Log in mit ssh machst ,hast du also nur das Recht auf dem Server dich anzumelden

ssh@ip

Besser wäre es :

user@ip user:passwort

oder

ssh $user@$IP "$command"

Dazu dann im Nachinein auch das Passwort dazu festlegen womit du dich mittels script anmeldest.

Gilt auch wenn du dich mit root am Server anmeldest. Ohne Passwort keine Chance.

Man kann auch Befehle nacheinander ausführen lassen.

ssh user@host 'befehl1 && befehl2 && befehl3 ...' 

Passwortangabe nicht vergessen.

Fakt ist :

ssh username@IP-Adresse

Wäre der korrekte Log in von SSH Client zu SSH Server.

Danach erscheint Passwort Abfrage.

Dies musst auch in deinem Script so Berücksichtigen

Wenn alle Stricke reißen und man nicht klarkommt --> PUTTY

Woher ich das weiß:Berufserfahrung – Linux Administrator

Dein Script führt die Programme nacheinander aus, dh. es führt erst ssh aus und sobald ssh beendet ist dann den nächsten Schritt.

Die nachfolgenden Befehle werden nicht in SSH ausgeführt.

Die Antwort von Lamanini ist richtig, damit kannst du Befehle über SSH an die bash shell auf dem Server senden. Alternativ kannst du über scp das Script auf dem Server kopieren und über ssh auf dem Server ausführen.

Wenn du viele Scripte schreiben möchtest um deine Server zu verwalten würde ich dir so etwas wie Ansible empfehlen, damit schreibst du auch eine art Script welches Ansible dann z.B. über SSH auf dem Server den du konfigurieren möchtest ausführt.

Woher ich das weiß:Berufserfahrung – Privat und beruflich damit zu tun