Problem mit Bash: Umleitung von Ausgabe
Jan-Benedict Glaw
jbglaw at lug-owl.de
Thu Apr 3 17:49:02 CEST 2003
On Thu, 2003-04-03 17:22:02 +0200, Florian Schwarz <floh at maflohsoft.de>
wrote in message <3E8C519A.1020408 at maflohsoft.de>:
> Jan-Benedict Glaw schrieb:
> >>Florian Schwarz schrieb:
> >Könntest Du das Script anhängen oder sonstwo hinpacken, sodaß man sich
> >das angucken kann. Ich vermute, daß Du (vielleicht nicht so ganz
> >offensichtlich;) irgendwo 'nen Syntax-Fehler d'rinhast...
>
> Ich habe das Wesen mal unter http://floh.linland.de/incmysqlback.sh
> geparkt. Wäre nett wenn du (oder jemand anders) sich das mal anschauen
> könnte. Auch sonstige Verbesserungsvorschläge sind erwünscht!!!
Hmmm.
Also, "diff A B > C" und "diff A B | cat C" sind zwei vollkommen
unterschiedliche Dinger;)
In Variante 1 wird nichts ausgegeben, der Diff landet in Datei C.
In Variante 2 wird erst der Diff nach stdout ausgegeben, danach nochmal
zusätzlich C. C wird nicht überschrieben. C enthält hinterher nicht den
diff (...oder bestenfalls noch 'ne alte Version).
An einigen Stellen leidet die Lesbarkeit stark unter der häufigen
Verwendung von "&&", an einigen Stellen denke ich sogar, daß die
"richtige" Ausführung fraglich ist...
So, wie's jetzt ist, ist's auf jeden Fall falsch (also mit der
"cat"-Konstruktion). Dein Fehler-Handling ist da auch falsch. Z.B.:
diff $BACKUPDIR/$YESTERYEAR/$YESTERDAY.sql $BACKUPDIR/$YEAR/$TODAY.sql 2>$BACKUPDIR/diff.err | cat $BACKUPDIR/current.diff
if [ $? != 0 ]; then
error_handling "Creating Diff-File failed!" diff
fi
Hier überprüfst Du den "Fehler" von cat, nicht den von diff. Kann's
sein, daß die Zieldatei schon existiert und Du keine Schreibrechte hast?
Statt mittels ssh einen Patch zu übertragen könntest Du auch rsync
nehmen; dann passen hinterher die Dateien wenigstens, für den Dummen
Fall, daß die mal auseinanderlaufen sollten...
Ich tippe jedenfalls darauf, daß Du nicht schreiben darfst oder sowas
Dummes in der Art;)
MfG, JBG
--
Jan-Benedict Glaw jbglaw at lug-owl.de . +49-172-7608481
"Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg
fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak!
ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lug-owl.de/pipermail/linux/attachments/20030403/07687169/attachment.sig>
More information about the Linux
mailing list