Script funktioniert auf Shell, aber nicht im CRON

Bash, Shell, PHP, Python, Perl, CGI
odysseus
Posts: 115
Joined: 2003-02-07 10:21

Script funktioniert auf Shell, aber nicht im CRON

Post 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?
User avatar
Joe User
Project Manager
Project Manager
Posts: 11174
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Script funktioniert auf Shell, aber nicht im CRON

Post by Joe User »

Und an welche Shell soll cron das Script zum Ausführen übergeben?
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.
odysseus
Posts: 115
Joined: 2003-02-07 10:21

Re: Script funktioniert auf Shell, aber nicht im CRON

Post 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.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11174
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Script funktioniert auf Shell, aber nicht im CRON

Post by Joe User »

Gib die Shell im Script (nicht in der crontab) an:

Code: Select all

#!/bin/sh

# BEGIN MySQL-Backup
...
# END MySQL-Backup
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.
odysseus
Posts: 115
Joined: 2003-02-07 10:21

Re: Script funktioniert auf Shell, aber nicht im CRON

Post 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.
odysseus
Posts: 115
Joined: 2003-02-07 10:21

Re: Script funktioniert auf Shell, aber nicht im CRON

Post 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... ;)