ssh login via shell script, und anschliessend befehele ausfuehren.

Z

zeeng

Grünschnabel
Moin,

ich moechte gerne einige befehle via ssh login in einem Shellscript auf einen entfernten Rechner ausfuehren.

der ssh login ist kein Problem, habe den public key in die "authorized_keys" des entfernten Servers gepackt. Das klappt auch wunderbar.

wie kann ich aber nun im selben shell script auch noch einige Befehle an den entfernten Server uebergeben? Ein einfaches Beispiel waere nen "mkdir" absetzten.

Code:
#!/bin/bash
ssh -l root server
mkdir test

Indem Beispiel wird eine Verbindung via ssh zum entferneten Server gemacht.
Aber der zeite Befehl wird leider nur auf den lokalen Host abgearbeitet.
Wie ist es moeglich, dass zum Beispiel das "mkdir" auf den entfernten Server ausgefuehrt wird.

Vielen Dank schon mal fuer eure Hilfe.

Gruss, ZeenG
 
Hallo,

erstmal danke fuer die Antwort.
Ich habe das gleich mal ausprobiert.

Leider ohne Erfolg!
Hat jemand anderes noch eine Idee? wie man das machen kann?

Gruss, ZeenG
 
Code:
ssh $user@$IP "$command"

Das muss gehen und geht hier auch wunderbar.
Was hast du genau eingeben oder was steht im script?

Bekommst du Fehlermeldungen oder wie machst du fest, dass es nicht funktioniert?
Mit der Aussage "Leider ohne Erfolg" kann niemand etwas anfangen.
 
Code:
[tilman@milliways ~]% ssh ax86 "df -h"
Password: 
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda2            9.9G  877M  8.5G  10% /
tmpfs                 257M     0  257M   0% /lib/init/rw
udev                   10M   16K   10M   1% /dev
tmpfs                 257M  4.0K  257M   1% /dev/shm
Klappt hier. Wie sah denn dein ssh-Befehl aus?
 
Hallo,

ich hätte ein ähnliches Problem wegen der Ausführung von Befehlen innerhalb eines Skriptes nach dem SSH login.
Allerdings handelt es sich bei mir nicht nur um einen Befehl.
Das Skript wird auf Rechner 1 gestartet und soll einen SSH login + weitere Befehle auf Rechner 2 ausführen.
Über da Array soll das Skript dynamisch für weitere IP´s erweitert werden.

Hier meine bisherige Codierung:

Code:
#!/bin/sh 

IPadressen=([1]=192.x.x.x)
i=0

for i in ${IPadressen[*]}
do
ssh root@$i
sleep

groupadd -g 9000 user1
useradd -u 9000 -g user1 -d /home/user1 -m -c "User1" user1

mkdir /home/user1/shelltest/.ssh

scp /home/user/shelltest/.ssh/*.* user1@$i:/home/user1/shelltest/

mkdir /usr/local/user1/libexec

logout

done
 
Du kannst Befehle mittels &&-Verknüpfung verbinden: ssh user@host 'befehl1 && befehl2 && befehl3 ...'
 

Ähnliche Themen

Cronjob mit Root-Rechten

ssh-client von root-server zu root-server verbinden

SSH Login via Shell Script?

OS X SSH bereit machen

SFTP Script

Zurück
Oben