• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] crontab startet script nicht ohne Fehlermeldung

funon

Member
Hallöchen @ all,
ich habe folgendes script erstellt um meine LDAP Datenbank alle 2 Stunden zu sichern.
Code:
#!/bin/bash
PFAD=/backup/ldap
DATE=`date +%d%m%Y_%H%M`
DUMPFILE=ldap_komplett_$DATE.ldif

# anlegen des verzeichnisses falls geloescht
if [ ! -d $PFAD ]
then
        echo "Sicherungsverzeichniss wird angelegt..."
        mkdir $PFAD
        chmod 770 $PFAD
fi

cd $PFAD

# dump des LDAP erstellen, zippen und chmodden
slapcat -l $DUMPFILE

gzip $DUMPFILE

chmod 600 $DUMPFILE.gz

echo "LDAP-Dump wurde gesichert."

Das script funktioniert wenn man es von Hand aufruft einwandfrei

crontab -l liefert

Code:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.20671 installed on Mon May  8 11:58:42 2006)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
# crontab von root
# m s D M Wochentag
# * * * * * /programmname
# 55 6,8,10,14,18,22 * * * /sambafs/tools/ldapsafe
*/3 * * * * /sambafs/tools/ldapsafe

anstelle von */3 habe ich auch schon zeiten versucht und eine Liste bei den Stunden etc...

Ich finde einfach keine Fehlermeldung in z.B. /var/log/allmessages und messages
auch kommen keinerlei mails :?:
cat /var/mail/root bringt nur "altes Zeuch"

Ich habe auch schon mit
/bin/sh und
/bin/bash mal die shells gewechselt, aber immer funzt das script nur von Hand.

kann mir da wer einen Tip geben?

thx 4 help [/code]
 
Versuch mal am ende des cron-Aufrufes :
> /tmp/dummy.log 2>&1

- Schau in dummy.log nach ob dort Fehlermeldungen stehen.
- Legt das Skript das Verzeichnis neu an ?
- Stehen überhaupt "cron" Meldungen in /var/log/messages ( cron nicht gestartet..)
sollte so aussehen: May 8 12:04:01 xxx /usr/sbin/cron[25441]: (root) CMD (ksh -c /root/xxx.backup)

Tippe mal das folgendes fehlt oder cron nicht gestartet ist...
PATH=$PATH:/usr/sbin

Haveaniceday
 
OP
F

funon

Member
Danke für die schnelle Antwort :)
War gerade im Keller beim Backup.

Ich habe die crontab mal um deinen Vorschlag erweitert => /tmp/dumpfile
Code:
/sambafs/tools/ldapsafe: line 25: slapcat: command not found
gzip: ldap_komplett_08052006_1327.ldif: No such file or directory
chmod: cannot access `ldap_komplett_08052006_1327.ldif.gz': No such file or directory
LDAP-Dump wurde gesichert.

Er scheint also die Datei zu erstellen, fragt sich nur wo?
Fehlt dem zip der Pfad zur Datei oder wie?
Das Verzeichnis wird nicht neu angelegt, da in dem Verzeichnis ja meine Sicherungen vom "Handstarten" auch schon liegen.

Ein Tail auf die messages liefert mir
Code:
tail -f /var/log/allmessages | grep -i cron

May  8 13:27:01 rechnername /USR/SBIN/CRON[21899]: (root) CMD (/sambafs/tools/ldapsafe > /tmp/dummy.log 2>&1)
May  8 13:30:01 rechnername /USR/SBIN/CRON[21932]: (root) CMD (/sambafs/tools/ldapsafe > /tmp/dummy.log 2>&1)
 
OP
F

funon

Member
Danke dir :)
Dein Hinweis mit dem Path war genau richtig.

Ich habe einfach mal alle Pfade komplett angegeben und dann gings auch. :)
 

ginka

Member
/sambafs/tools/ldapsafe: line 25: slapcat: command not found
Nein, die Datei wird nicht erstellt da das Kommando slapcat nicht gefunden wird. Mangels erzeugter Datei schlagen dann die folgenden Befehle gzip und chmod fehl.

Wenn du sagst, dass du das Skript händisch fehlerfrei laufen lassen kannst, gibt es - wie so oft - einen Unterschied bei den Umgebungsvariablen zwischen Konsole und Cron.

Ergänze doch mal den vollen Pfad für slapcat in Zeile 25 in deinem Skript, z.B. /usr/sbin/slapcat (oder wo auch immer es installiert ist), und lasse das Ganze nochmal als Cron laufen.

Gruß
ginka
 
Oben