| Autor | Nachricht | 
  
    |  | 
        
					| Titel: Cronjob wird nicht ausgeführt  Verfasst am: 27.02.2014, 07:59 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 18. Okt 2007
 Beiträge: 420
 
 
 |  | 
        
          | 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. |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 27.02.2014, 09:34 Uhr |  | 
  
    | 
        
          | 
  
 Anmeldung: 27. Jun 2007
 Beiträge: 409
 
 
 |  | 
        
          | 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.
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 27.02.2014, 10:11 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 18. Okt 2007
 Beiträge: 420
 
 
 |  | 
        
          | 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.
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 27.02.2014, 17:22 Uhr |  | 
  
    | 
        
          | 
  
 Anmeldung: 27. Jun 2007
 Beiträge: 409
 
 
 |  | 
        
          | 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.
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 27.02.2014, 17:56 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 18. Okt 2007
 Beiträge: 420
 
 
 |  | 
        
          | 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:~#
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 27.02.2014, 18:05 Uhr |  | 
  
    | 
        
          | 
  
 Anmeldung: 27. Jun 2007
 Beiträge: 409
 
 
 |  | 
        
          | 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.
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 27.02.2014, 18:44 Uhr |  | 
  
    | 
        
          | Developer 
  
  
 Anmeldung: 10. Jul 2004
 Beiträge: 290
 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
 |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 28.02.2014, 09:16 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 18. Okt 2007
 Beiträge: 420
 
 
 |  | 
        
          | 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
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
    |  | 
        
					| Titel:  Verfasst am: 01.03.2014, 18:04 Uhr |  | 
  
    | 
        
          | 
 
 Anmeldung: 18. Okt 2007
 Beiträge: 420
 
 
 |  | 
        
          | 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#
 |  
          |  |  
         
	        |  |  | 
  
    |  | 
  
    |  | 
  
  
    |  |