Page 1 of 1
bash script Problem
Posted: 2010-09-15 13:54
by native
Mit
diesem Skript sollen ein paar Ordner auf einen FTP Server geschoben werden.
Das Skript gibt mir diesen Fehler aus:
Code: Select all
/bin/tar: /mnt/ftp-backup/user/1/Wed/user-data-2010-09-15_13\:51\:38.tgz: Cannot stat: No such file or directory
/bin/tar: Error exit delayed from previous errors
Besagtes Verzeichnis /mnt/ft-backup/user/1/Wed/ existiert aber, laut Debugausgabe wird der FTP-Server auch richtig gemountet.
Ich sehe den Fehler schlicht nicht, wäre dankbar für Hilfe.
Re: bash script Problem
Posted: 2010-09-15 14:45
by Joe User
Vorweg: Absoluter Pfad zu which fehlt, das Thema hatten wir ja bereits.
Dein tar-Aufruf sollte allgemein eher so aussehen:
Code: Select all
$TAR czpf "$BACKUP/1/${WEEK[$DAY]}/user-data-$(/bin/date +"%Y%m%d%H%M").tgz" $DIRS
So lässt sich der Timestamp fehlerfreier verarbeiten als in Deiner Version.
Die Fehlermeldung lässt darauf deuten, dass während des tar in $DIRS ein File/Directory gelöscht/verschoben wurde.
Re: bash script Problem
Posted: 2010-09-15 14:59
by native
kurz zu which: point taken, das habe ich übersehen. Allerdings scheint dies nicht das Problem zu sein: ich habe das in gleicher Form in einem anderen Skript laufen, da geht es fehlerfrei. Auch laut Debugausgaben werden die Pfaden zu den Befehlen korrekt gesetzt.
Bzgl. gelöscht/verschoben während des tar: laufen die einzelnen Prozesse im Skript atomar ab? Dann dürfte vom Skript aus doch eigentlich nichts in diesem Moment verschoben/gelöscht werden.
Re: bash script Problem
Posted: 2010-09-15 15:06
by Joe User
native wrote:Dann dürfte vom Skript aus doch eigentlich nichts in diesem Moment verschoben/gelöscht werden.
Nicht von diesem Script, aber von irgendwem/irgendetwas Anderem.
Re: bash script Problem
Posted: 2010-09-15 15:13
by native
Ein Tipp, wie ich das herausfinden könnte? laut pstree laufen keine anderen Prozessen, und abgesehen davon ist dieses Skript das einzige, was überhaupt in diesem Verzeichnis bzw. dem ganzen FTP überhaupt etwas macht.
Re: bash script Problem
Posted: 2010-09-15 17:26
by native
Nein, der if Block wurde natürlich nicht durchlaufen. Das Verzeichnis hatte ich vorher manuell angelegt.
Re: bash script Problem
Posted: 2010-09-15 17:37
by Joe User
Das ist nicht zufällig eine (ältere) Debian-Kiste mit kaputtgepatchtem tar, welches keine langen Verzeichnis/Dateinamen-Ketten mag. Das Problem hatte ich vor ein paar Jahren mal bei einem debianbasierten Rescuesystem eines grossen deutschen Rootserver-Anbieters.
Re: bash script Problem
Posted: 2010-09-15 17:39
by native
Sollte nicht. Läuft Debian Lenny drauf, neuer Server.
Re: bash script Problem
Posted: 2010-09-15 17:50
by native
Scheint, das "-" vor den Optionen bei tar war das Problem.
Re: bash script Problem
Posted: 2010-09-15 18:00
by Joe User
Joe User wrote:Das ist nicht zufällig eine (ältere) Debian-Kiste mit kaputtgepatchtem tar, welches keine langen Verzeichnis/Dateinamen-Ketten mag. Das Problem hatte ich vor ein paar Jahren mal bei einem debianbasierten Rescuesystem eines grossen deutschen Rootserver-Anbieters.
Referenz:
http://www.rootforum.org/forum/viewtopi ... 20#p172320
Re: bash script Problem
Posted: 2010-09-15 18:02
by Joe User
native wrote:Scheint, das "-" vor den Optionen bei tar war das Problem.
OK, also mal wieder eine irreführende Fehlermeldung.
Re: bash script Problem
Posted: 2010-09-16 09:40
by Roger Wilco
native wrote:Scheint, das "-" vor den Optionen bei tar war das Problem.
GNU
tar unterstützt verschiedene „Parameterstile”. Wenn du das „-” vor den kurzen Parameternamen weglässt, vergibt dir
tar ziemlich viel Müll. Wenn „-” vor den kurzen Parameternamen steht, ist es strikter. Details dazu findest du in der Infopage zu
tar (`info tar`).
Korrekt wäre gewesen:
Code: Select all
$TAR -czpf "$BACKUP/1/${WEEK[$DAY]}/user-data-$(/bin/date +"%F_%T").tgz" $DIRS
Man beachte die Position von „-f” in Relation zum Dateinamen des Tar-Archivs.