Backup mit Cronjob nur teilweise!!!!!!

N

noob222

Mitglied
Hallo,
habe ein Script zur Datensicherung eines Systems. Wenn man es manuell ausführt, dann klappt alles wunderbar.

Da ich es natürlich automatisch haben möchte, habe ich ein Cronjob-Script erstellt. Diese wird auch ausgeführt, jedoch werden nicht alle erforderlichen Daten gesichert.

Folgendes wird manuell erstellt aber per Cronjob nicht :




Code:
# Erstellen des Datenbank-Dump-Files
exp $DB_USER/test@$SID file=$BACKUPDIR_TODAY/$DB_EXPORTFILE log=$BACKUPDIR_TODAY/$LOG_DBEXPORTFILE statistics=none compress=yes

wobei

Code:
BACKUPDIR_TODAY=$BACKUPDIR/$DATE
DB_EXPORTFILE=$SAVE_HOST"_"$DB_HOST"_"$DB_USER"_at_"$SID"_"$DATE.dmp
LOG_DBEXPORTFILE=db_export_$DATE.log

es soll also die .lgo (der dazugehörige log-Order) und die .dmp Datei erstellt werden.

wenn ich das Script manuell starte dann bekomme ich im nachhinhein eine Bestätitungsmail in der für die .dmp Datei folgendes steht



Code:
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
. exporting materialized views
. exporting snapshot logs
. exporting job queues
. exporting refresh groups and children
. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting statistics
Export terminated successfully without warnings.

aber wenn ich es halt mit Cronjob starte, bekomme ich diese Meldungen nicht.

Woran kann das liegen?
Kennt einer das problem??

danke
mfg
 
Moin, moin,

cronjobs werden mit sh ausgeführt. Guck Dir mal Dein Script an, sind da relative Pfade drin? Mach mal absolute draus.

Gruß
Blur
 
na ja, der eintarg in der crontab ist schon korrekt,weil er ja auch das script ausführt.

habe den cronjob folgendermassen definiert:

Code:
20 12 * * 1 /testsystem/backup_order/backup.sh

aber wie gesagt, wird mein backup-script am montag um 12:20 aufgerufen. nur werden nicht alle dateien gesichert. aber wenn ich es manuell mache, dann schon. das kann ich gerade nicht verstehen


PS: was ist der unterschied zwischen relativen und absoluten Pfade??
also in meinem beispiel wäre es ein absoluter Pfad, weil es mit einem "/" anfängt oder (?) und dementsprechend auch richtig sein sollte.
 
Zuletzt bearbeitet:
Hallo

Die Pfade innerhalb deines Scriptes solltest auch absolut setzen.
Ein Script, welches als Cronjob läuft kennt all die in der ~/.bashrc definierten Umgebungsvariablen nicht.
Wenn du in der Crontab eine Mailadresse (systemuser) einfügst, bekommst du alle Ausgaben dorthin gesendent (auch die Fehlerausgaben).

Das sollte dann Klarheit verschaffen.

Gruß Wolfgang
 
hmm, die pfade in dem script sind auch alle absolut.
ich kriege ja eine mail, sowohl per cronjob als auch wenn ich es manuell starte. die ausgabe steht ja ganz oben beschrieben


wenn ich es manuell starte steht da : Export terminated successfully without warnings.

wenn ich es per cronjob laufen lasse steht da nix.....
 
Hallo,

Dir sollte bewusst sein, dass aus der Shell heraus bzw. manuell, diverse
Umgebungsvariablen gesetzt sind - im Cronjob hingegen nicht! Dort ist
die Umgegung (oftmals) eher rudimentär.

Ich glaube, dass dem exp-Kommando Umgebungsvariablen fehlen, da Die
Ausgabe sehr nach Oracle aussieht, nachfolgend ein paar Variablen, die
Du VOR dem Aufruf des exp-Kommandos unbedingt setzen solltest!

export ORACLE_SID=<sid>;
export ORACLE_HOME=/opt/oracle/orahome;
export ORACLE_TERM=xterm;
export TNS_ADMIN=/opt/oracle/orahome/network/admin;
export NLS_LANG="";

(Bitte auf Deine Umgebung anpassen!)
 
@ Schlaubi_fi.de

danke für die infos werde diese morgen dann mal direkt in die tat umsetzen, weil ich von zu hause keine rechte für den server habe. aber noch ne kurze frage, damit ich mir auch sicher sein kann und das es eventuell beim ersten mal klappt (hoffen wir es doch mal :-) ). ich muss die Befehle

export ORACLE_SID=<sid>;
export ORACLE_HOME=/opt/oracle/orahome;
export ORACLE_TERM=xterm;
export TNS_ADMIN=/opt/oracle/orahome/network/admin;
export NLS_LANG="";

bevor ich das script per cronjob laufen lasse, in der shell (ich benutzte den csh-shell) setzten?????
natürlich muss ich die variablen meiner umgebung anpassen.
muss ich irgendwo in meinem script diese Variablen auch definieren????
weil ja keine dieser Variablen in meinem script auftauchen.

kann ich also den "exp"-Befehl in meinem script so stehen lassen wie er ist ohne weitere Befehle, die eventuell etwas mit den von dir oben genannten Variablen zu tun haben?

PS: es ist ein Oracle Datenbank :-) hatte ich vorher vergessen gehabt zu erwähnen :-(

mfg
 

Ähnliche Themen

NagiosGrapher 1.7.1 funktioniert nicht

script mit topas ausgabe als cronjob

Ubuntu X / dbus problem

[RedHat] Seltsames Verhalten bei Cronjob... Hilfe!!

Jaunty + Zend + Gdata + xampp

Zurück
Oben