shellscript in crontab

khh

New Member
hallo zusammen, ich hoffe ich bin hier richtig.
in einem shellscript wird per:
/bin/tar -cvf /daten/tmp/$DATUM.tar /daten/sicherungen

das Verzeichnis nebst subdirectories gesichert.
Also die Verzeichnisse unterhalb /daten/sicherungen
Das funktioniert beim Direktaufruf des Scripts fehlerlos.

Beim Aufruf aus der Crontab des gleichen Benutzers wird nur eines der unterverzeichnisse gesichert und das wars.
Woran kann das liegen, was mache ich falsch?

Danke gruss KH
 
Angaben fehlen

Hallo khh,

wir brauchen ein paar Angaben um das zu verifizieren. Erstsmal den Nutzernamen und Gruppenzugehörigkeit. Bitte nur die Zeilen aus /etc/passwd und /etc/groups, die für das Problem relevant sind. Dann den "ls -ah" aus dem Zielverzeichnis und das Vezeichnis das Du sicherst. Du hast bei Tar schon die "verbose-option" aktiviert. Dann mal her mit der Ausgabe. Außerdem wäre die Crontab des Users interessant.

Danach wissen wir mehr.

Iggi
 
Danach wissen wir mehr.

Iggi


hallo,
die relavanten zeilen aus passwd und group
Code:
hwdsicher:x:1003:50::/home/hwdsicher:/bin/bash
hwd:x:109:hwd,hwdsicher

ls -ah zeigt im zielverzeichnis nix an, bzw nur . und ..
EDIT: das Zeilverzeichnis war grad leer, das das File anschliessend gepackt und verschoben wird :(

im Quellverzeichnis gibt es keine versteckten Dateien.
die einzige Besonderheit sind einzelne Files mit Leerzeichen im Dateinamen.

Ursache ist der Windowsursprung der Files. :-(



die relavante Zeile aus der crontab :
Code:
0 2 * * 1 /bin/sh /home/hwdsicher/scripts/sicher.sh
was mir gerade noch aufgefallen ist, ist dass der funtionierende, manuelle aufruf aus der bash erfolgt.
Wobei im script wieder die sh angewiesen wird:

#!/bin/sh


kann da der Unterschied herkommen?
EDIT: ach quatsch sh ist ja ein link zu bash :-(

Danke Gruss KH
 
Last edited by a moderator:
Nun mach schon

die Ausgabe von ls -ah im zu packenden Verzeichnis noch mal posten.

Dann sind wir wenigstens auf dem selben Wissensstand wie Du.
Auch wenn es ein sehr merkwürdigs Verhalten ist.
 
ls -ah

Code:
hwdsicher@box:/daten/hwdsicherungen$ ls -ah
.                                  Profi cash 93A 0001 0525.sav
..                                 hwd-buero
Datensicherung BMWi-Mein Bro.mfb  hwd_projekte
Profi cash 93A 0001 0523.sav
 
Last edited by a moderator:
Leerzeichen in Dateinamen sind immer wieder nett :cool: Passend in Anführungsstriche setzen.

tja und die lassen sich nicht verhinderrn, wenn die Benutzer windows verwenden.

wie man sieht sind die Leerzeichen sogar Standard im Sicherungsfile einer Bankingsoftware :-(

wie meinst das jetzt mit den Anführungszeichen, wenn ich vorher gar nicht weiss wie das file heisst ?

und ob das die Ursache ist, dass das auf gleicher ebene liegende Verzeichnis nicht gesichert wird?
Beim manuellen Aufruf des Script werden die files mit leerzeichen ja sogar mitgesichert ;-)
 
wie meinst das jetzt mit den Anführungszeichen, wenn ich vorher gar nicht weiss wie das file heisst ?
Die Anführungszeichen bräuchtest Du nur, wenn Du "/daten/sicherungen/*" verwenden würdest. Ich meine, dass tar den "*" dann selber evaluiert, bin mir aber nicht ganz sicher. Auf der sicheren Seite bist Du, wenn Du es ohne den Stern machst und das vollstándige Verzeichnis sicherst, wie es im ersten Posting richtig geschrieben war.

Weitere Fehlermöglichkeiten:
  • Das von cron aufgerufene Script ist nicht das gleiche, wie beim manuellen Aufruf -> beides Mal absolute Pfade verwenden.
  • Bei Deiner Ausgabe von "ls -ah" steht ein anderer Pfad, als im Beispiel oben.
 
Weitere Fehlermöglichkeiten:
  • Das von cron aufgerufene Script ist nicht das gleiche, wie beim manuellen Aufruf -> beides Mal absolute Pfade verwenden.
  • Bei Deiner Ausgabe von "ls -ah" steht ein anderer Pfad, als im Beispiel oben.

ich lasse es heute nacht mal als root laufen, mal sehen was dabei rauskommt.
die unterschiedlichen pfade waren ein tippfehler :-(
daten/hwdsicherungen ist der richtige pfad
 
ich lasse es heute nacht mal als root laufen, mal sehen was dabei rauskommt.

alsooo,
auch als root kam kein anderes Ergebnis raus, deshalb schliesse ich falsche Rechte definitiv aus.
eine anpassung des scripts
Code:
 /bin/tar -cvf /daten/tmp/$DATUM.tar /daten/hwdsicherungen/* /daten/hwdsicherungen/hwd_projekte /daten/hwdsicherungen/hwd-buero >>/daten/tmp/sicherprot.dat

hat bewirkt, dass so alle Verzeichnisse, auch aus der cron gestartet, gesichert wurden.

Was aber ist der Unterschied zu

Code:
 /bin/tar -cvf /daten/tmp/$DATUM.tar /daten/hwdsicherungen/

warum funkt das erste aus der cron und das zweite nur direkt gestartet??


Danke gruss KH
 
Back
Top