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

[solved] Cronjob - Datenbankbackup

manuel_

Newbie
Hallo Linux-Gemeinde,

ich habe folgendes Problem:
Ich habe ein Shell Skript, welches Daten aus einer Datenbank sichert.
Wenn ich dieses via gnome ausführe, klappt die Sicherung Problemlos. Richte ich dieses aber als einen Cronjob ein, funktioniert dieses nur teilweise.

Das Skript macht folgendes:
1. eine Pipe erstellen
2. gzip < pipe_name > Zielverzeichnis & export zur Datenbank

Die Pipes werden erstellt, die Daten aber nicht exportiert, bzw. nichts in die Pipe geschrieben.

Oberhalb der Cronjob-Datei habe ich noch folgendes festgelegt:
SHELL=/bin/bash
PATH=/sbin/:/bin/:/usr/sbin/:/usr/bin/:/data/Sicherung/

Das Shell-Skript liegt in /data/Sicherung/

Hat Jemand eine Idee, woran das liegen könnte?
Oder gibt es Dinge, die ich zusätzlich konfigurieren muss?

Hier der Code der Cronjob-Datei:
Code:
SHELL=/bin/bash
PATH=/sbin/:/bin/:/usr/sbin/:/usr/bin/:/data/Sicherung/
HOME=/data/Sicherung/

5 14 * * 1,2,3,4,5 /data/Sicherung/ExportOrdner_Mappen.sh
30 16 * * 1,2,3,4,5 /data/Sicherung/countuser.sh
7 14 * * 1,2,3,4,5 /data/Sicherung/create_user_exp.sh
8 14 * * 1,2,3,4,5 /data/Sicherung/Save_Instanz.sh
32 16 * * 1,2,3,4,5 /data/Sicherung/dbdione_export.sh

Das Skript /data/Sicherung/dbdione_export.sh läuft leider nicht sauber durch.
Code der Datei:
Code:
mknod export_test.pipe p
gzip < export_test.pipe > /data/backup/db_dione_export/dbdione.export_test.dmp.gz & exp export_user/export_user_pwd@dbdione file=export_test.pipe log=/data/backup/db_dione_export/dbdione.export_test.log owner=export_test
rm export_test.pipe

Rufe ich das Skript aus meiner Shell aus, klappt es.
Ich habe schon versucht die Pipe folgendermaßen anzulegen:
mknod /data/Sicherung/export_test.pipe p
ohne Erfolg.

Wie schon erwähnt, die Pipes werden erstellt, aber scheinbar nicht mit Daten befüllt.

Vielen Dank im Voraus,
Manuel
 

regexer

Advanced Hacker
Allererste Frage: Hast du schon mal in deine Mail-Box gesehen? cron schreibt Mails, falls irgendetwas in dem Job technisch schief gelaufen ist...
 
Wenn es normal klappt und mit cron nicht liegt es meistens an den Pfaden.
Also im Script sich nicht auf paths verlassen, sondern gnadenlos vor Befehlen den kompletten Pfad davorstellen. Am einfachsten eine Variable einrichten und das halt vor den Befehl schreiben.

Als 2. Möglichkeit sehe ich nurnoch Rechteprobleme. Aber die Mails sollten da Auskunft geben.

Grüße
 
OP
M

manuel_

Newbie
Ich habe die Lösung des Problems gefunden.

Am Anfang meines Skriptes musste folgende Zeile eingefügt werden:
Code:
. /etc/profile

Dadurch wird die Umgebung auf die Loginwerte des Users gestellt.

Danke für Eure Hilfe!!!
 
Oben