bash script Problem

Bash, Shell, PHP, Python, Perl, CGI
native
Posts: 119
Joined: 2003-11-18 10:38

bash script Problem

Post by native » 2010-09-15 13:54

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.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11602
Joined: 2003-02-27 01:00
Location: Hamburg

Re: bash script Problem

Post by Joe User » 2010-09-15 14:45

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.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

native
Posts: 119
Joined: 2003-11-18 10:38

Re: bash script Problem

Post by native » 2010-09-15 14:59

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.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11602
Joined: 2003-02-27 01:00
Location: Hamburg

Re: bash script Problem

Post by Joe User » 2010-09-15 15:06

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.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

native
Posts: 119
Joined: 2003-11-18 10:38

Re: bash script Problem

Post by native » 2010-09-15 15:13

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.

native
Posts: 119
Joined: 2003-11-18 10:38

Re: bash script Problem

Post by native » 2010-09-15 17:26

Nein, der if Block wurde natürlich nicht durchlaufen. Das Verzeichnis hatte ich vorher manuell angelegt.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11602
Joined: 2003-02-27 01:00
Location: Hamburg

Re: bash script Problem

Post by Joe User » 2010-09-15 17:37

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.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

native
Posts: 119
Joined: 2003-11-18 10:38

Re: bash script Problem

Post by native » 2010-09-15 17:39

Sollte nicht. Läuft Debian Lenny drauf, neuer Server.

native
Posts: 119
Joined: 2003-11-18 10:38

Re: bash script Problem

Post by native » 2010-09-15 17:50

Scheint, das "-" vor den Optionen bei tar war das Problem.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11602
Joined: 2003-02-27 01:00
Location: Hamburg

Re: bash script Problem

Post by Joe User » 2010-09-15 18:00

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: viewtopic.php?f=63&t=24962&p=172320#p172320
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11602
Joined: 2003-02-27 01:00
Location: Hamburg

Re: bash script Problem

Post by Joe User » 2010-09-15 18:02

native wrote:Scheint, das "-" vor den Optionen bei tar war das Problem.

OK, also mal wieder eine irreführende Fehlermeldung.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: bash script Problem

Post by Roger Wilco » 2010-09-16 09:40

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.
Last edited by Roger Wilco on 2010-09-16 09:41, edited 1 time in total.