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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 66288
Url: https://administrator.de/contentid/66288
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
8 Kommentare
Neuester Kommentar
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
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
Servus Jan,
bin zwar ein SuSEaner , 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:
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
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ß
bin zwar ein SuSEaner , 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
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ß
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ß
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ß
Schönen Dank für die Info.
Gruß
Gruß