Page 1 of 1

Script funktioniert auf Shell, aber nicht im CRON

Posted: 2005-04-09 13:49
by odysseus
Hallo,

ich werde einfach nicht schlau aus dem Verhalten eines simplen Scriptes. Es soll per CRON in der Nacht gestartet werden, um alle MySQL Datenbanken zu sichern. Das Script sieht so aus:

Code: Select all

WOCHENTAG=`date '+%A'`

for i in `/bin/cat /var/backup/DATENBANKEN/DATENBANKEN`
do
  /usr/bin/mysqldump -uroot -pXXXXXXXX --opt $i > /var/backup/DATENBANKEN/${WOCHENTAG}/$i.sql
done
Das Verzeichnis /var/backup/DATENBANKEN/ existiert und hat die Unterverzeichnisse 'Montag', 'Dienstag', usw. In der Datei DATENBANKEN steht pro Zeile je der Name einer Datenbank.

Das funktioniert auch alles einwandfrei, aber wenn ich das Script per CRON starte, werden die Backups nicht geschrieben. Der Log Eintrag ist jedoch vorhanden.

Ich finde einfach nicht heraus, was da nun inkompatibel ist.
Weiß jemand Rat?

Re: Script funktioniert auf Shell, aber nicht im CRON

Posted: 2005-04-09 14:07
by Joe User
Und an welche Shell soll cron das Script zum Ausführen übergeben?

Re: Script funktioniert auf Shell, aber nicht im CRON

Posted: 2005-04-09 16:14
by odysseus
Eigentlich solle es die default shell tun.
Ich hab jetzt auch mal probiert, in die crontab eine Shell direkt mit SHELL= zuzuweisen, aber auch das liefert nicht das gewünschte Ergebnis.

Re: Script funktioniert auf Shell, aber nicht im CRON

Posted: 2005-04-09 16:21
by Joe User
Gib die Shell im Script (nicht in der crontab) an:

Code: Select all

#!/bin/sh

# BEGIN MySQL-Backup
...
# END MySQL-Backup

Re: Script funktioniert auf Shell, aber nicht im CRON

Posted: 2005-04-09 16:34
by odysseus
Hm. Hatte ich zwar auch schon brobiert, aber das geht offenbar auch nicht.
Der Eintrag im messages Log wird geschrieben, aber der eigentliche Prozess wird nicht angestoßen.

Re: Script funktioniert auf Shell, aber nicht im CRON

Posted: 2005-04-09 16:36
by odysseus
Oh Mann, jetzt hab ich's.
Wenn das Script per CRON gestartet wird, ist meine Lokalisierungseinstellung weg und das date Kommando liefert die Tagesnamen natürlich auch Englisch. Ich hab ein Verzeichnis "Saturday" erstellt und darin wird nun das backup problemlos erstellt.

Tja, die kleinen Dinge im Leben... ;)