Variable per SSH übergeben

H

hennerich

Jungspund
Hallo,

ich habe auf meinem Client eine Variable mit export definiert und möchte diese in einem Script anwenden, das ich per SSH auf meinem Server ausführe.
Dazu wollte ich auf dem Server eine neue Variable deklarieren:

Client:
export VARCLIENT=/tmp
ssh root@server 'export VARSERVER=$VARCLIENT' /home/user/runscript.sh

leider funktioniert das nicht so. Hat jemand eine Idee wie ich das lösen könnte??

Danke

Henri
 
Hmm, wenn ich das richtig verstanden habe, dann kannst Du an das Skript deine Variable anhängen und als $1 im selbigen verwursten.

/home/user/runscript.sh $trallala

Sollte funktionieren, oder ?
 
Hallo Bonk,

lokal funktioniert das auch, aber leider nicht per SSH.
Wenn ich das so mache:
ssh root@server home/user/runscript.sh $trallala
dann will er die Variable $trallala von server nehmen und dieser kennt die Variable nicht. Ich muss also explizit angeben das er die vom Client nimmt. Nur wie ???

Henri
 
Hm, vll. musst du das alles in ' ' setzen.

ssh root@server '/home/user/runskript.sh tralala'
 
Nee, geht nicht ? Die Variable müßte auf dem client richtig ersetzt werden.

export TRALLALA=peng
ssh user@server /../../runscript.sh $TRALLALA

ergibt : ssh user@server /../../runscript.sh peng

Haste das mal getestet?
 
@hehejo
habe ich alles versucht:
ssh root@server "home/user/runscript.sh" $trallala
ssh root@server "home/user/runscript.sh $trallala"
ssh root@server 'home/user/runscript.sh' $trallala
ssh root@server 'home/user/runscript.sh $trallala'
ssh root@server `home/user/runscript.sh` $trallala
ssh root@server `home/user/runscript.sh $trallala`

@Bonk
das ist ja bei mir so:
runscript.sh
...
export trallala=/pfad
...
ssh root@server home/user/runscript.sh $trallala
 
aaahh!!!
Du mußt den Kram groß schreiben!

export TEST=blah
echo $TEST
 
@Bonk
OK, jetzt der richtige Ausschnitt aus meinem Script:

...
export DEST_PATH=/var/mail/patch
...
ssh root@server /root/install.sh $DEST_PATH
...

Henri
 
Wie jetzt? Geht nicht?
Sitzt Du neben den Rechnern?
Teste mal Sendmail an oder aus (mir fällt nix besseres ein). Ich denke das sind deine nicht produktiven privat Rechner, oder?

export TEST=stop oder start
ssh root@server /etc/init.d/sendmail $TEST

Das sollte funktionieren.
 
Hallöchen,

ich habe einfach in meinem Script das ich auf dem Server starte ein echo $DEST_PATH drin, da sehe ich dann das Ergebnis.
Leider ist es immer leer.

Henri
 
Nee, is klar! Auf dem Server kannst Du nicht mit DER Variable arbeiten! Da mußt Du $1 nehmen.
 
Wenn dieses Variable eine bei dir lokal exportierte Varbiable ist, dann bleibt die Variable auch bei dir.
Du kannst dann zwar den Wert übergeben, aber nicht die Info, dass es eigentlich eine Variable ist.
Wenn du den Wert übergibst, dann kannst du den aufragen steht dann in $1.
BSP:
Code:
$ export DEST=/home
$ cat runskript.sh
#!/bin/bash
echo $1
$ ./runskript.sh $DEST
/home
$
Wenn die Variable aber die gleiche bleiben soll, dann leg die doch einfach in deinem Skript fest.
 
Es sollte auch so gehen (bei Anfuehrungszeichen statt Hochkomma wird die Variable $VARCLIENT ausewertet):

export VARCLIENT=/tmp
ssh root@server "export VARSERVER=$VARCLIENT ; /home/user/runscript.sh"
 
Hallo rup,

habe es gerade getestet, das funktioniert auch.
Danke noch mal.

Henri
 

Ähnliche Themen

PHP funktioniert, nur Web-Aufrufe mit Optionen nicht.

Verschlüsseltes Backup-Script mit rsync

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Empfehlungen für ein Partitionsschema home server

3 Wege zur Authentifizierung?

Zurück
Oben