16.09.2014, 20:54 UhrDeutsch | English
Hallo Gast [ Registrierung | Anmelden ]

Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen Druckerfreundliche Version Einloggen, um private Nachrichten zu lesen Nächstes Thema anzeigen
Autor Nachricht
Felis
Titel: Cronjob wird nicht ausgeführt  BeitragVerfasst am: 27.02.2014, 07:59 Uhr



Anmeldung: 18. Okt 2007
Beiträge: 393

Mir fällt seit einiger Zeit auf, dass ein täglicher Cronjob (backup) als Root nicht ausführt wird. Ich habe keine Ahnung wo ich bei der Fehlersuche ansetzen müsste. System ist Dragonfire-KDE.
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
totschka
Titel:   BeitragVerfasst am: 27.02.2014, 09:34 Uhr



Anmeldung: 27. Jun 2007
Beiträge: 402

Hat der cronjob in der Vergangenheit funktioniert oder wurde er überhaupt noch nicht ausgeführt? Falls er bisher überhaupt nicht ausgeführt wurde, kann es folgende Ursachen haben:

- das Skript in /etc/cron.daily für den Aufruf des Backups funktioniert nicht
- das Skript in /etc/cron.daily hat einen falschen Dateinamen
- das Skript in /etc/cron.daily ist nicht ausführbar

Die Dateinamen der Skripte in /etc/cron.{hourly|daily|weekly|monthly} dürfen keine Punkte enthalten.

Ob das Skript ausgeführt würde, kannst Du testen:

Code:
run-parts --test /etc/cron.daily


Das Kommando zeigt die Liste der Skripte, die täglich ausgeführt werden.


P.S.:
Ich bin davon ausgegangen, dass der Rechner auch zu der in der crontab eingetragenen Zeit in Betrieb ist. Per default wird ein Skript in /etc/cron.daily also jeden Morgen um 06.25 Uhr ausgeführt. cron holt von sich aus die verpassten Jobs nicht nach. Da passt dann anacron besser.
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
Felis
Titel:   BeitragVerfasst am: 27.02.2014, 10:11 Uhr



Anmeldung: 18. Okt 2007
Beiträge: 393

Danke für prompte und sehr aufschlussreiche Antwort. Also, ursprünglich lief das Skript. Steht auch in crontab drinnen
Code:
root@linux:/home/am# crontab -l
#Backup
30 18 * * *     /usr/local/bin/backup


# Diese Datei wurde von KCron generiert Donnerstag, 27. Februar 2014 11:05.

wobei ich es eben neu erstellt habe, nachdem weder durch deinen Suchbefehl, noch in /etc/cron.daily das Skript zu finden war. Leider auch nach Neuerstellung wieder Fehlanzeige. Nirgendwo zu finden. Der Rechner ist um 18.30 immer an. Manuell gestartet funktioniert es übrigens. Am Skript liegt es also nicht.
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
totschka
Titel:   BeitragVerfasst am: 27.02.2014, 17:22 Uhr



Anmeldung: 27. Jun 2007
Beiträge: 402

Ein relativ einfacher Weg wäre das Einrichten eines cronjobs, indem Du das betreffende Skript in das passende Verzeichnis /etc/cron.xxxx kopierst und verlinkst.
Zum Beispiel:
Code:
# ln -s /usr/local/bin/backup /etc/cron.daily/


Dann müsstest Du mit einem Editor die /etc/crontab bezüglich der Uhrzeit anpassen und es sollte funktionieren. Alle anderen täglich ausgeführten Jobs würden dann ebenfalls zu dieser Uhrzeit ausgeführt, was aber wohl nicht stört, da der Rechner sowieso an ist.

Warum der von Dir eingerichtete cronjob so nicht funktioniert, erschließt sich mir bisher noch nicht. Nach dem Eintrag folgt richtigerweise eine Leerzeile. Die Ausführung benutzerdefinierter cronjobs hängt auch von den Einträgen in /etc/cron.allow und /etc/cron.deny ab. Die sollten aber theoretisch nicht vorhanden sein. Außerdem ist der Nutzer root davon eh ausgenommen, weil er den Dienst uneingeschränkt nutzen darf. Deshalb bin ich gerade etwas ratlos.

Bei mir aufm Netbook läuft trim mit anacron, und das geht einfach über ein Skript in /etc/cron.weekly.
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
Felis
Titel:   BeitragVerfasst am: 27.02.2014, 17:56 Uhr



Anmeldung: 18. Okt 2007
Beiträge: 393

den Link habe ich gesetzt, aber wo sollte ich hier die Uhrzeit anpassen?
Code:
root@linux:~# cat /etc/crontab
#Kein Kommentar
SHELL=/bin/sh

#Kein Kommentar
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

#Kein Kommentar
17 * * * *      root    cd / && run-parts --report /etc/cron.hourly

#Kein Kommentar
25 6 * * *      root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

#Kein Kommentar
47 6 * * 7      root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

#Kein Kommentar
52 6 1 * *      root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )


# Diese Datei wurde von KCron generiert Donnerstag, 27. Februar 2014 11:05.
root@linux:~#
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
totschka
Titel:   BeitragVerfasst am: 27.02.2014, 18:05 Uhr



Anmeldung: 27. Jun 2007
Beiträge: 402

Code:
25 6 * * *      root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )


Die Zeile ist verantwortlich für die täglichen Jobs, die in /etc/cron.daily als Skript stehen. Da brauchst Du nur die Zeit ändern, in Deinem Fall dann

Code:
30 18 * * *      root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )


Die crontab von root kannst Du dann wieder löschen:
Code:
# crontab -r



P.S.:
Die /etc/crontab enthält die globalen Einstellungen und Jobs. Es werden nacheinander entsprechend der Einträge die Skripte in

/etc/cron.hourly #stündliche Jobs
/etc/cron.daily #tägliche Jobs
/etc/cron.weekly #wöchentlich
/etc/cron.monthly #monatlich

erledigt. Für die Jobs außer den stündlichen wird geprüft, ob anacron installiert wurde und die ausführbare Datei /usr/sbin/anacron vorhanden ist. Ist das nicht der Fall, so werden die Jobs über run-parts ausgeführt.
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
acritox
Titel:   BeitragVerfasst am: 27.02.2014, 18:44 Uhr
Developer
Developer


Anmeldung: 10. Jul 2004
Beiträge: 288
Wohnort: Bayern (München & Rottenburg)
Ich vermute der Kommentar in der letzten Zeile deiner crontab ist schuld, lösch mal das raus:
Code:
# Diese Datei wurde von KCron generiert Donnerstag, 27. Februar 2014 11:05.

Zitat man crontab:
Zitat:
If the last entry in a crontab is missing the newline, cron will consider the crontab (at least partially) broken and refuse to install it.

ansonsten check mal ob cron überhaupt richtig läuft:
Code:
ps -C cron -f
grep CRON /var/log/syslog

/etc/cron.daily verwendet man normalerweise wenn es einem nur darum geht, dass etwas einfach einmal täglich ausgeführt werden soll, die Uhrzeit dabei aber egal ist (z.B. /etc/cron.daily/logrotate um einmal am Tag die Logs zu rotieren). Der Eintrag in die crontab (wie du ihn ursprünglich hattest) war schon richtig eigentlich.

acritox

_________________
http://kanotix.acritox.com/factoids - http://kanotix.acritox.com - http://acritox.de/repository - http://andreas-loibl.de - GPG: F781E713
 
 Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen ICQ-Nummer 
Antworten mit Zitat Nach oben
Felis
Titel:   BeitragVerfasst am: 28.02.2014, 09:16 Uhr



Anmeldung: 18. Okt 2007
Beiträge: 393

Code:
root@linux:~# ps -C cron -f
UID        PID  PPID  C STIME TTY          TIME CMD
root      3285     1  0 08:58 ?        00:00:00 /usr/sbin/cron

root@linux:~# grep CRON /var/log/syslog
root@linux:~#

Scheint zu laufen. Im Logfile wohl nix drinnen, da erst um 8.58 eingeschaltet?

Danke für die Tipps, werde mal sehen, wie es in den nächsten Tagen läuft und berichten.
Andreas
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
Felis
Titel:   BeitragVerfasst am: 01.03.2014, 18:04 Uhr



Anmeldung: 18. Okt 2007
Beiträge: 393

Sieht so aus, alsob es jetzt funktionieren würde.
Code:
Feb 28 18:30:01 linux /USR/SBIN/CRON[8123]: (root) CMD (/usr/local/bin/backup)
Mar  1 18:30:01 linux /USR/SBIN/CRON[3898]: (root) CMD (/usr/local/bin/backup)

Meine "Lösung": Der Hinweis auf die vmtl. fehlerhafte Crontab, die von Kcron-KDE4 erstellt wurde, brachte mich auf die Idee es mit Kcron von KDE3.5 sprich Trinity, das ich auch drauf habe, da ich mich anfangs nicht mit KDE4 anfreunden konnte, zu versuchen. Dessen Crontab sieht jetzt so aus
Code:
root@linux:/home/am# crontab -l
# Backup
30 18 * * *     /usr/local/bin/backup
# This file was written by KCron. Copyright (c) 1999, Gary Meyer
# Although KCron supports most crontab formats, use care when editing.
# Note: Lines beginning with "#\" indicates a disabled task.
root@linux:/home/am#
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
Beiträge vom vorherigen Thema anzeigen:     
Gehe zu:  
Alle Zeiten sind GMT + 1 Stunde
Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen Druckerfreundliche Version Einloggen, um private Nachrichten zu lesen Nächstes Thema anzeigen
PNphpBB2 © 2003-2007 
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.