Quoting Axel Birndt
Hallo Dirk,
Dirk schrieb:
Dieses Script wird von einem anderen System aus aufgerufen und soll dann die Dateien, die vorher von dem System aus gescpt werden verschlüsseln und per ftp übertragen. Also habe ich ja nur den Aufruf mit $1, da ich nicht wissen kann wie die Dateien heißen. Kann ich denn am Anfang des scriptes schon Variablen definieren, die ich nicht genau kennen kann?
datime=date... neuedatei=$1_$datime
oder muss ich neuedatei definieren, nachdem im script der mv Befehl erfolgt ist? => /usr/bin/ssh user@server /user/local/script $1 und im script dann den mv $1 $1_$datime
neuedatei ergibt sich ja erst viel weiter unten, also nach dem mv? Ich habe immer gedacht, dass man das immer step by step machen muss?
die Festlegung
kannst Du natürlich nur treffen, wenn Du die Variable $1 bestimmten kannst. Wenn Dein Script von mehrerern Prozessen aufgerufen werden soll, wär entweder "$$" (PID Deines Scriptes) ganz interessant, um den temporären Namen zu bilden.
Hier muss ich beim Namen des vorigen Systems bleiben, darf also zur Unterscheidung maximal einen timestamp anhängen.
Evtl könntest Du auch noch mit x=$[ $x+1 ] eine Variable hochzählen (müsstest natürlich vorher --am Beginn des Scriptes-- noch die Variable auf einen definierten Wert setzen ... 0 oder 1 z.B.) und den fortlaufenden Wert mit in die Bildung Deines neuen Namens einfügen. Des weiteren solltest Du beachten, das Du mit Deinem Script so wie es jetzt ist, Probleme mit Leerzeichen im Dateinamen bekommst! Ich hab mal ein bisschen drin rum geändert:
thx für den Vorschlag, werde ich so mal testen, aber nochmal eben, zur Verdeutlichung was ich machen möchte. Ich erstelle aus server1 dateien, die ich dann per scp auf server2 schicke. Dann rufe ich per ssh ein script unter einem anderen User auf server2 auf. Dieses Script soll die Dateinamen um einen timestamp erweitern, dann mit gpg verschlüsseln und dann per ftp an extern versenden. Der timestamp ist für mich wichtig, da server1 nur nach Tag unterscheidet, die Dateien also immer gleich heißen (je tag halt). Wenn also an einem Tag mehrer Dateien von server1 generiert werden, könnte es sein, dass die alten überschrieben werden. Hier mal das aktuelle Script wie es me. funktionieren sollte. #!/bin/bash DATIME=`date +%H%M` for i in $1 do mv $1 $1_$DATIME neu=$1_$DATIME gpg -e -r username -o $neu.pgp $neu ftp -iv -u ftp://ftpadresse/ $neu.pgp > /home/username/logs/translog$neu.txt 2>&1 done --- Ich denke dass sollte es doch tun oder? MfG Dirk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org