fraggle666
Goto Top

Cronjob mit bestimmten Benutzer ausführen

Hallo zusammen,

ich möchte gerne ein Backupscript mit Hilfe des cronjobs unter Redhat ausführen.

Allerdings mit dem Benutzer Oracle...

hierfür hatte ich den Befehl crontab -l aufgerufen um zu sehen ob es schon einen Job gibt, was nicht der Fall war.
Also mit crontab /etc/crontab eine Kopie erstellt und diese mit crontab -e bearbeitet.

Soweit so gut.

Der Inhalt (Ich bin mit meinem Benutzer "oracle" angemeldet):

SHELL=/bin/bash #muss ich das ändern?
PATH=/sbin:/bin/:/usr/sbin/:/usr/bin #Hier wird des öfteren geschrieben, dass das Verzeichnis mit dem Script angegeben werden soll. Bei mir liegt das Script in /tools/backup/test.sh.
#Also "PATH=/sbin:/bin/:/usr/sbin/:/usr/bin/tools/backup/test.sh"?
HOME=/ #Hier muss ich vermutlich mein oracle Home angeben, /home/oracle/

#run-parts
0 16 * * * /tools/backup/test.sh

Der Job startet aber einfach nicht zur gewünschten Uhrzeit. Unter /var/log/ gibts eine "cron" und eine "cron.1" die ich allerdings beide nicht öffnen kann.
Das Script selbst funktioniert wenn ich es manuell anstoße.

Dankeschön für eure Hilfe

Gruß Jan

Content-Key: 66288

Url: https://administrator.de/contentid/66288

Ausgedruckt am: 29.03.2024 um 05:03 Uhr

Mitglied: cykes
cykes 15.08.2007 um 16:57:44 Uhr
Goto Top
Hi,

zunächst einmal solltest Du die Dateiberechtigungen überprüfen, darf der USer oracle das Script auch anstossen/ausführen?
Was sagen die Logfiles gegen 16 Uhr, finden sich dort eventuell Fehlermeldungen?

Ich würde die Sehll im Cronfile auf /bin/sh umändern, den Pfad brauchst Du eigentlich nicht abändern, auf keinen Fall aber den kompletten Pfad inkl. Dateinamen dort einfügen (wenn überhaupt dann nur /tools/backup

Funktioniert das Script auch als User oracle beim manuellen Anstossen?

Gruß

cykes
Mitglied: fraggle666
fraggle666 15.08.2007 um 17:17:47 Uhr
Goto Top
Jepp, das Script kann ich manuell als Oracle anstoßen und es funktioniert auch.
Demnach sind die Berechtigungen soweit in Ordnung.
Fehlermeldungen kann ich keine entdecken...
Mitglied: 49391
49391 17.08.2007 um 16:27:34 Uhr
Goto Top
Servus Jan,

bin zwar ein SuSEaner face-wink, denke aber, daß 'cron' auch unter RedHat gleich ausgeführt wird.
Die 'crontabs' werden für jeden Benutzer separat gespeichert und zwar unter /var/spool/cron/tabs/<user> und nicht in /etc.

'man cron' ist Dein Freund:
Cron searches /var/spool/cron/tabs for crontab files which are named after accounts in /etc/passwd;
Weitere Infos gibt es auch per 'man crontab'.

Du solltest Dein Skript also ausgeführt bekommen, indem Du das Original Deiner /etc/crontab wiederherstellst, Dich dann als Benutzer oracle anmeldest, 'crontab -e' aufrufst und Deine Einträge machst.
Prinzipiell sollte '0 16 * * * /tools/backup/test.sh' als Eintrag reichen.
Daß die Uhrzeit am System stimmt und der cron-Dämon läuft hast Du ja sicher schon geprüft face-devilish

Noch ein Tipp: Wenn Dein Skript einen Fehler produzieren sollte, sendet 'cron' ein Mail an den Benutzer oracle mit Fehlerdetails. Abrufbar mit 'mail' in einer Konsole.

Hoffe, daß ich helfen konnte.
Gruß
Mitglied: fraggle666
fraggle666 22.08.2007 um 08:32:42 Uhr
Goto Top
Hallo zusammen,

ich hab zwar keine Ahnung warum, aber mein Cronjob läuft auf einmal :/
Ich habe eigentllich nur einen reboot durchgeführt...

Dankeschön
Mitglied: cykes
cykes 22.08.2007 um 09:02:27 Uhr
Goto Top
Hi,

vielleicht hatte sich der Cron Daemon aufgehangen. Kann auch mal passieren face-wink
Reboot tut halt auch bei Linux ab und zu gut face-wink

Gruß

cykes

P.S. Kannst Du den Beitrag bitte noch als gelöst markieren?
Mitglied: 49391
49391 23.08.2007 um 16:22:51 Uhr
Goto Top
Servus fragle666,

schön, daß es funktioniert. Hätte trotzdem *neugierigbin* noch ein paar Fragen, vielleicht hast Du ja kurz Zeit.

Welche Datei hast Du editiert?
Wenn Du /etc/crontab bearbeitet hast, ist klar, daß ein reboot (bzw. Neustart des crond) nötig war. /etc/crontab ist eine Art init-Datei für cron. Benutzereinträge haben dort eigentlich nichts verloren.

Oder hast Du tatsächlich als Benutzer oracle ein 'crontab -e' ausgeführt und das hat nicht funktioniert?

Existiert nun eine Datei /var/spool/cron/tabs/oracle mit Deinen Einträgen?

Interessiert mich speziell wegen eventueller Unterschiede SuSE/RedHat.

Danke und Gruß
Mitglied: fraggle666
fraggle666 23.08.2007 um 16:28:33 Uhr
Goto Top
Hiho,

ich hatte diese Datei mit "crontab -e" und dem Benutzer Oracle angelegt und eben dies wollte er nicht akzeptieren.

Unter /var/spool/cron/ existiert nun eine Datei mit dem Namen Oracle und meinem Inhalt

Grüße
Mitglied: 49391
49391 23.08.2007 um 21:20:13 Uhr
Goto Top
Schönen Dank für die Info.
Gruß