crontab einrichten

Hallo
Welches System?

Welche crontab ist das?
Mit Sicherheit nicht die Systemcrontab oder doch?

Normalerweise wird mit crontab -e nicht die Systemcrontab, dafür die des angemeldeten Users bearbeitet, welche das Feld <user> ( hier root) nicht kennen dürfte.
Es sei denn du nutzt ein exotisches System.

Weiterhin verweise ich wie immer auf die Pfade.
Entweder die Pfadvariable PATH definieren, oder vollen Pfad bei allen Programmen angeben.
Bashscripte als Cronjob laufen als nicht interactive Shell, welche die gesamten Umgebungsvariablen des users nicht kennen.
Dazu zählt auch PATH.

Wolfgang
 
is en FreeBSD und hab das nach der anleitung gemacht.
 
df, grep und awk benutze ich für zusätzliche Speicherabfrage in meinem Script. Diese Fehlermeldung taucht aber auch nur auf, weil mein Cronjob nicht läuft (vermutlich wegn dem mehrmaligem löschen )

mfg

Nein, das ist ziemlich eindeutig, dass deine Werkzeuge wegen fehlendem Pfad nicht gefunden werden.
Dann definiere den PFAD am Beginn deines Scriptes.
Oder rufe alles mit vollem Pfad auf.
Allein der Hinweis auf deinen Oraclepfad sagt eigentlich schon alles.
Definiere alles fest in deinem Script mit absolutem Pfad!

Ich widerhole mich:
Ein Script als Cronjob kennt die userspezifischen Umgebungsvariablen nicht!


is en FreeBSD und hab das nach der anleitung gemacht.

Siehe mein Hinweis auf die Pfade und das root Feld.
Führst du das als root aus?
Wolfgang
 
Hallo Zusammen

Ich versteh das irgendwie nicht (bin halt noch en ziemlicher newbie) =)

Wenn ich also als root eingeloggt bin und dann eben dieses crontab -e mache und dann die zwei Zeilen in dieses File schreibe, was muss ich denn nochmehr tun als auf die Zeit warten, welche ich angegeben habe?

Das sollte ja dann automatisch ausgeführt werden, oder nicht? Oder muss ich das viellecht mit diesen periodic CronJobs zusammenschalten?

Liebe Grüsse
DarkAngelw
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Also, ich habs jetzt nochmals anders gemacht:

Folgende Bash Datei habe ich erstellt und manuell gestetet (die läuft also):
Code:
#!/bin/bash

rm -r /usr/home/svn/backup/MyFirstProject
mkdir /usr/home/svn/backup/MyFirstProject
svnadmin hotcopy /usr/home/svn/repos/MyFirstProject /usr/home/svn/backup/MyFirst
Project

Danach habe ich crontab -e betätigt und folgendes in diese Datei geschrieben:
Code:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log

0       7       *       *       *       root    /usr/home/svn/backup/backup.sh

Das sollte doch nun jeden Tag um 7:00 Uhr durchgeführt werden oder?
 
Zuletzt bearbeitet:
Hallo
Ich habe hier kein FeeBSD, aber das Unixboard hat dazu einen netten Eintrag.
Eventuell möchtest du den mal lesen.

Gruß Wolfgang
 
Hallo

Muss gerade sagen, dass ich nur "Bahnhof" verstehe.

Gruss
DarkAngelw
 
Code:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log

0       7       *       *       *       root    /usr/home/svn/backup/backup.sh

Dann änder das doch mal als root-User mit dem Kommando crontab -e
so ab (vorkau)!!
Code:
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log

0       7       *       *       *       /usr/home/svn/backup/backup.sh

Warum /var/log als HOME-Verzeichnis für root-definiert wird verstehe ich nicht!?

----

Hallo noob222,

nochmal ganz langsam. Ich wette mit Dir, dass wenn Du den folgenden
Cronjob als root-User mit dem folgendem Kommando hinzufügst:

Code:
crontab -e

(GANZ WICHTIG, unter Solaris, darf beim Eintragen von Cronjobs KEIN Leerzeichen
vorkommen!! also zur Not gewünschte Leerzeichen mit dem Kommentarzeichen # auffüllen!!!):

Code:
# Beginn der Crontab
SHELL=/bin/sh
3 17 * * 2 ORACLE_HOME=/oracle/OraHome1; PATH=$PATH:$ORACLE_HOME/bin; exp username/pass@sid file=/path/to/exportfile.exp log=/path/to/export.log statistics=none compress=yes
# Ende der Crontab

dass Dein Backup und auch Dein Cronjob funktioniert. Wenn das klappt, dann kannst
Du Dich daran machen das Ganze in ein Skript auszulagern und div. Werte in Variablen
zu setzen!!

Sollte das widererwarten nicht klappen, dann poste doch bitte gleich Deine Fehlermeldung
und ändere nichts mehr daran. Interessant wäre auch die die Ausgabe von

Code:
echo $PATH

in der Shell und aus dem Cron, also inetwa (solltes eine Mail erhalten):

Code:
SHELL=/bin/sh
#3 17 * * 2 ORACLE_HOME=/oracle/OraHome1; PATH=$PATH:$ORACLE_HOME/bin; exp username/pass@sid file=/path/to/exportfile.exp log=/path/to/export.log statistics=none compress=yes
#
15 12 * * * echo "PATH=$PATH"
# Ende der Crontab
 
Zuletzt bearbeitet:
Hallo,

das Problem wurde endlich gelöst.

Wie gesagt, konnte ich ja in meiner Cronjob kein SHELL und PATH definieren. Eigentlich konnte ich außer

Code:
* * * * * /der/pfad/
nix anderes reinschreiben. Auch habe ich als root crontab -e aufgerufen.

Da ich Fehlermeldungen bezgülich exp und ORACL_HOME bekommen habe, habe ich diese in meinen Script folgendermassen definiert, wie mir das auch hier mehrfach gesagt wurde.

Code:
ORACLE_HOME=/oracle/OraHome1
PATH=$PATH:$ORACLE_HOME/bin

Auch hier lief mein Script nicht korregt.

Da habe ich per Zufall auf einer Seite gelesen, das ich die Pfade im anschluss noch exportieren muss, sonst klappt es nicht. Was mich gewunder hat, das ich ja in meinem Script gar kein Pfad exportiert habe und diese mit dem Cronjob ausgführt wurden. Daher ist es mir auch garnicht in den Gedanken gekommen für ORACLE_HOME und PATH ein export zu machen. Die anderen Pfade habe ich so stehenlassen wie sie sind, also ohne export

Jetzt klappt mein Script wunderbar, weil nur 2 "EXPORT" Befehle gefehlt haben :-)

Also so klappt es:
Code:
ORACLE_HOME=/oracle/OraHome1
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH


Wie gesagt, habe ich diese Änderung in meinem Backup-Script vorgenommen. An meinen Cronjob habe ich keine Änderungen durchgeführt

möchte mich bei allen bedanken dir mir bei der Fehlersuche behilflich waren

vielen dank

mfg
 
ich schwöre das ich keine Lehrzeichen hatte :-) :-)

hatte jede variante ausprobiert gehbat. mit lehrzeichnen, ohne, mit abstatz, ohne abstatz....
es ging aber nicht ;(

egal... jetzt klappt es ja
 

Ähnliche Themen

Läuft eine Unix-Variante auf PC aus dem Jahr 2015, der nicht Windows-11-fähig ist?

chown Befehl in einem Script

NAS-Drive Mount in Bash-Script über crontab

Keine Anmeldung bei phpmyadmin möglich!

Keine grafische Oberfläche (Debian Installation)

Zurück
Oben