[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: storeBackup, cron.daily und sh



Hallo Martin,

On Fri, Jan 07, 2005 at 03:46:29PM +0100, Martin Schmitz wrote:
> ich versuche gerade, mich ein wenig mit storeBackup vertraut zu machen.
> Dazu habe ich ein paar Konfigurationsdateien nach /etc/storebackup.d/
> kopiert. Über /etc/cron.daily/storebackup werden nun täglich Sicherungen
> angelegt. Soweit so gut.
> Allerdings erhalte ich in der Mail von cron.daily immer den Hinweis:
> run-parts: /etc/cron.daily/storebackup exited with return code 1
> Also habe ich /etc/cron.daily/storebackup mal ein wenig genauer unter
> die Lupe genommen (hier nur der relevante Teil):
> 
> | configs=`run-parts --list /etc/storebackup.d/`
> | tmplog=`mktemp`
> | delayed_error=0
> |
> | if [ -x /usr/bin/storeBackup -a "$configs" ]; then

Hier liegt m.E. schon der erste Fehler: -a ist nur die Verknüpfung
zweier Bedingungen (UND bzw. AND) der "run-parts" weiter oben liefert
eine Liste von Dateien, wenn das mehr als eine ist kommt der nächste
Fehler (too many arguments). Ich glaube der Skriptschreiber ist ein
passionierter C-Programmierer und hat etwas zu "kompakt" programmiert.
:-)

> |     for file in $configs
> |     do
> |         if ! nice storeBackup -f "$file" > "$tmplog" 2>&1
> |         then
> |             cat "$tmplog" >&2
> |             delayed_error=1
> |         fi
> |     done
> |
> |     [ $delayed_error ] && exit 1;
> |     ^^^^^^^^^^^^^^^^^^
> | fi
> 
> Nun, nach ausgiebigen Tests bin ich zu dem Ergebnis gekommen, daß das
> Skript *immer* einen return code von 1 liefert. '[ $delayed_error ]' ist
> immer wahr, auch wenn $delayed_error 0 ist. Selbst, wenn der Test
> funktionieren würde, also $delayed_error=0 falsch liefern würde, wäre
> der return code 1, da der letzt Test gescheitert wäre.
> 
> Müßte das also nicht vielmehr so aussehen?
> 
> [ $delayed_error -eq 1 ] && exit 1;
> exit 0;

Das ist vom Stil her wieder das selbe wie oben: zu kompakt für die BASH
bzw. die /bin/sh (das selbe Fehlverhalten).

> Hoffentlich kann mich hier jemand etwas erhellen. Oder soll ich einen
> Bug-Report schreiben?

Das Erstere habe ich hoffentlich getan, das Letztgenannte sollte noch
geschehen.

MFG,
Rainer



Reply to: