Cron führt Programm nicht richtig aus

Dieses Thema im Forum "Anwendungen" wurde erstellt von clemente, 10.05.2006.

  1. #1 clemente, 10.05.2006
    clemente

    clemente Mitglied

    Dabei seit:
    02.05.2006
    Beiträge:
    25
    Zustimmungen:
    0
    Hallo,
    ich verzweifel so langsam. Ich möchte "dirvish-runall" - ein Perlscript für rsync-backups - via cron regelmässig starten
    Dazu schrieb ich folgendes in die /etc/crontab:
    Code:
    * * * * * root /usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dirvish-runall>>/root/dirvish
    
    In der Datei /root/dirvish sehe ich den erwarteten Output - aber das Script führt die eigentlichen Bakcups nicht aus.
    Direkt auf der Kommandozeile funktioniert /usr/local/sbin/dirvish-runall>>/root/dirvish wunderbar.
    /var/log/messages zeigt nichts anormales:
    Code:
    root@enthal1 : /usr/local/sbin : 21:11
    >!tail -n15
    tail /var/log/messages  -n15
    May 10 21:00:01 enthal1 /usr/sbin/cron[9178]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dirvish-runall>>/root/dirvish)
    May 10 21:00:13 enthal1 syslog-ng[2850]: STATS: dropped 0
    May 10 21:00:15 enthal1 /usr/sbin/cron[9223]: (CRON) STARTUP (V5.0)
    May 10 21:01:01 enthal1 /usr/sbin/cron[9236]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dodirvish>>/root/dirvish)
    May 10 21:02:01 enthal1 /usr/sbin/cron[9247]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dodirvish>>/root/dirvish)
    May 10 21:03:01 enthal1 /usr/sbin/cron[9259]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dodirvish>>/root/dirvish)
    May 10 21:04:01 enthal1 /usr/sbin/cron[9277]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dodirvish>>/root/dirvish)
    May 10 21:05:01 enthal1 /usr/sbin/cron[9295]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dodirvish>>/root/dirvish)
    May 10 21:05:01 enthal1 /usr/sbin/cron[9223]: (*system*) RELOAD (/etc/crontab)
    May 10 21:06:01 enthal1 /usr/sbin/cron[9301]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dirvish-runall>>/root/dirvish)
    May 10 21:07:01 enthal1 /usr/sbin/cron[9307]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dirvish-runall>>/root/dirvish)
    May 10 21:08:01 enthal1 /usr/sbin/cron[9313]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dirvish-runall>>/root/dirvish)
    May 10 21:09:01 enthal1 /usr/sbin/cron[9319]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dirvish-runall>>/root/dirvish)
    May 10 21:10:01 enthal1 /usr/sbin/cron[9327]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dirvish-runall>>/root/dirvish)
    May 10 21:11:01 enthal1 /usr/sbin/cron[9333]: (root) CMD ( ^I/usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dirvish-runall>>/root/dirvish)
    
    root@enthal1 : /usr/local/sbin : 21:11
    >
    
    Und ich stehe dumm daneben.
    Hat jemand eine Idee, was hier passiert?

    Danke!!
    Clemente

    P.S: Die "dodirvish" Aufrufe in dem Snippet waren ein Versuch, das Perlscript über ein weiteres Bashscript auszuführen...
    Gleiches Ergebnis.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 10.05.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Hast du in der crontab den Pfad festgelegt?
    Unter Umständen solltest du auch den Pfad zum Perlinterpreter prüfen.
    Ausführungsrechte sind auch alle gesetzt?
    Meist geht es um die Pfade, die ja in einem Script nicht aus der Umgebung der shell gelesen werden, wenn dieses nicht aus einer Shell sondern per cron gestartet wird.

    Gruß Wolfgang
     
  4. #3 clemente, 10.05.2006
    clemente

    clemente Mitglied

    Dabei seit:
    02.05.2006
    Beiträge:
    25
    Zustimmungen:
    0
    Hallo Wolfgang,
    Du hast recht und es kann ja so leicht sein.
    Das Script liegt in /usr/local/sbin - und es scheint weitere Skripte von dort zu verwenden. Unglücklicherweise war /usr/local/sbin aber nicht im Suchpfad von Cron eingetragen...
    Danke Dir für den Denkanstoss - und ich schreibe jetzt nicht, wie viel Zeit ich für diese Geschichte verplempert habe. ;) und :(

    Clemente
     
  5. #4 hoernchen, 10.05.2006
    hoernchen

    hoernchen UBERgarstiges nagetier

    Dabei seit:
    17.02.2005
    Beiträge:
    1.081
    Zustimmungen:
    0
    du hast sie nicht verplempert, du hast einfach was dazugelernt. ist doch ok :-)
     
  6. zugi

    zugi Grünschnabel

    Dabei seit:
    31.05.2006
    Beiträge:
    3
    Zustimmungen:
    0
    hallo!


    ich hatte das gleiche problem. jetzt funktioniert es auch. allerdings tritt jetzt bei mir beim erstellen des backups ein fehler auf (der vorher beim aufruf über die shell nicht auftrat.

    in der mail die cron schickt steht:
    Code:
    dirvish error: branch /backup/zmshare:default image 20060531-23:01 failed
    und in der datei summary im backup-verzeichnis steht:
    Code:
    Status:  (255) --

    hat jemand zufällig eine idee, woran das liegen könnte?
     
  7. #6 clemente, 01.06.2006
    clemente

    clemente Mitglied

    Dabei seit:
    02.05.2006
    Beiträge:
    25
    Zustimmungen:
    0
    Kannst Du noch die entsprechende crontab posten?
    Clemente
     
  8. zugi

    zugi Grünschnabel

    Dabei seit:
    31.05.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Hier die Benutzer-crontab von root:
    Code:
    SHELL=/bin/sh
    
    PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin
    
    MAILTO=root
    
    #
    #minute hour    mday    month   wday    command
    #
    #
    # Automatische Backups mit dirvish
    00      19      *       *       *       touch /tmp/backuplaeuft ; /usr/local/sbin/dirvish-expire --quiet ; /usr/local/sbin/dirvish-runall --quiet ; rm -R /tmp/backuplaeuft
    #
    # Server nach dem Backup und, nachdem alle Rechner offline sind, herunterfahren
    #*/10   20,21,22,23,0,1,2,3,4 * * * *   /usr/local/bin/shutdownscript >> /var/log/shutdownlog 2>&1
    
    Das shutdownscript fährt den Rechner automatisch herunter, nachdem bestimmte Rechner offline sind und nachdem das Backup abgeschlossen ist (wird daran erkannt, dass dann die Datei "backuplaeuft", die vor dem Backup erstellt wurde, nicht mehr vorhanden ist). Das läuft auch soweit, ist hier aber gerade ja deaktiviert.
     
  9. #8 clemente, 01.06.2006
    clemente

    clemente Mitglied

    Dabei seit:
    02.05.2006
    Beiträge:
    25
    Zustimmungen:
    0
    Komisch. Du sagst, per Kommandozeile und als root laufen die folgenden Aufrufe fehlerfrei durch?
    Code:
    /usr/local/sbin/dirvish-expire;
    /usr/local/sbin/dirvish-runall; 
    
    Laut dirvish bedeutet exit code 255: usage error.
    Die Fehlermeldung wird im dirvish script relativ weit am Ende ausgegeben (bei meiner Version in Zeile 798 ). Davor sollte im Fehlerfall eigentlich einiges an output kommen.
    Wenn der dirvish Aufuf per Kommandozeile keinen Fehler bringt, versuche doch einmal die Ausgabe aus dem cron Aufruf in eine Datei umzuleiten. Vielleicht bringt das ja eine Spur.
     
  10. #9 zugi, 01.06.2006
    Zuletzt bearbeitet: 06.06.2006
    zugi

    zugi Grünschnabel

    Dabei seit:
    31.05.2006
    Beiträge:
    3
    Zustimmungen:
    0
    ja, wenn ich als root den befehl aus der kommandozeile heraus starte, kommt kein fehler. wenn der befehl allerdings durch cron aus der benutzer-crontab von root heraus gestartet wird, taucht eben dieser fehler auf.

    also ich habe jetzt mal folgenden aufruf gestartet:
    Code:
    10      16      *       *       *       /usr/local/sbin/dirvish-expire >> /var/log/dirvishexlog ; /usr/local/sbin/dirvish-runall >> /var/log/dirvishrunalllog
    das müsste doch richtig sein, oder?

    in der datei dirvishexlog steht nichts und in der datei dirvishrunalllog nur folgendes:
    Code:
    16:10:00 dirvish --vault zmshare
    16:10:00 done
    
    was mir noch aufgefallen ist, ist, dass die rechte von dem neuen backup-ordner folgendermaßen gesetzt sind, wenn ich das backup aus der kommandozeile heraus starte:
    Code:
    drwxr-xr-x   3 root  wheel  512 May 31 22:54 20060531-22:54
    
    bei dem aufruf mit cron:
    Code:
    drwx------   3 root  wheel  512 May 31 23:01 20060531-23:01
    aber das dürfte ja eigentlich nichts damit zu tun haben, oder?


    --

    edit: Hat denn da keiner eine Lösung für mein Problem??? Komme hier leider überhaupt nicht weiter... :(
     
  11. Huaba

    Huaba Guest

    Hi,

    der Thread ist zwar schon etwas älter, aber ich habe ähnliche bzw. gleiche Probleme mit dem Aufruf des Cron-Skripts....

    Hier mein Cron-Skript, welches in /etc/cron.d mit den Rechten 777 liegt:
    Code:
    SHELL=/bin/sh
    MAILTO=root
    PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local:/usr/local/bin
    1 2 * * * root /usr/local/bin/dirvish-expire --quiet ; /usr/local/bin/dirvish-runall>>/backup/dirvish.log
    
    Leider passiert gar nix.... keine Fehlerausgabe, einfach gar nix... nicht in /var/log/messages und auch nicht in /var/log/cron

    Wenn ich aber mit Webmin auf Cron gehe, dieses Skript anzeigen lasse und "Jetzt ausführen" auswähle, läuft alles fehlerfrei durch. :think:

    Ich checks einfach nicht...

    Danke und Ciao,
    Huaba
     
  12. #11 clemente, 12.07.2006
    clemente

    clemente Mitglied

    Dabei seit:
    02.05.2006
    Beiträge:
    25
    Zustimmungen:
    0
    Hi,
    das ganze sollte also jeden tag um 2 Uhr 1 morgens geschehen. Und nach diesem Termin findest Du noch nicht einmal eine Nachricht im Syslog, dass Cron das Script ausgeführt hat?
    Hm. Ich glaube, nach Änderung der Crontab muß Cron via /etc/init.d/cron reload (o.ä.) übder die Änderungen "informiert" werden. Hast Du das getan?
     
  13. #12 Huaba, 13.07.2006
    Zuletzt von einem Moderator bearbeitet: 13.07.2006
    Huaba

    Huaba Guest

    Hab ich gerade gemacht, mal schauen, obs jetzt geht.
    Komisch ist nur, das Webmin unter Cron den Job listet...
     
  14. #13 Wolfgang, 13.07.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Wenn du das gleich mit crontab -e machst, kannst du dir das sparen. ;)
    Sämtliche Ausgaben der via cron laufenden Scripte landen übrigens in der eingestellten Mailbox. ->wenn sie nicht extra umgeleitet wurden.

    Gruß Wolfgang
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. Huaba

    Huaba Guest

    Ich weiß, das die Meldungen in der Mailbox landen. Aber da kommt nix. Auch die cron-Logs zeigen nix an....
     
  17. #15 hans3004, 20.07.2006
    hans3004

    hans3004 Grünschnabel

    Dabei seit:
    20.07.2006
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo zusammen,
    meine Probleme mit cron gestalten sich ähnlich. Ich habe eine Datei backup.sh angelegt, ihr ausführen Rechte gegeben und diese Datei in crontab -e eingetragen (00 23 * * * /home/david/backup.sh). Das Alles hat bis SuSE 8.2 so auch funktioniert. Ab SuSE 9.x kam dan das Problem, dass cronjobs nur noch als unpriviligierter Benutzer ausgeführt wurde und beim Benutzer root einfach gar nichts mehr passiert ist. Ab SuSE 10.0 wird cron einfach gar nicht mehr ausgeführt. Der einzige Eintrag, der überhaupt erscheint ist in /var/log/messages und lautet: /usr/sbin/cron[5344]: [root] RELOAD (tabs/root).
    Sachdienliche Hinweise wären Gold wert.
     
Thema: Cron führt Programm nicht richtig aus
Besucher kamen mit folgenden Suchen
  1. suse crontab nachricht alle 10 minuten

Die Seite wird geladen...

Cron führt Programm nicht richtig aus - Ähnliche Themen

  1. script wird von cronjob nicht korrekt ausgeführt - Centos 5

    script wird von cronjob nicht korrekt ausgeführt - Centos 5: Guten Morgen, und hallo ins Forum. Ich habe ein Problem mit meinem Sicherungsserver: ich möchte zur täglichen inkrimentellen Sicherung...
  2. script wird als cronjob anders ausgeführt

    script wird als cronjob anders ausgeführt: Hallo Leute Ich bin neu hier und Scriptanfänger, habe aber von Programmieren (vorw. JAVA) berufliche Erfahrung. Nun zum Problem; ich hab...
  3. Crontab führt Befehl nicht aus

    Crontab führt Befehl nicht aus: Servus zusammen, Als Cronjob lasse ich mir jede Minute mit dem Befehl: listento > /home/mitzekotze/.centerim/awaymsg-icqden aktuellen Titel,...
  4. Crontab wird falsch ausgeführt

    Crontab wird falsch ausgeführt: Hi, ich habe nun zum ersten mal Crontab verwendet. Ich will das er alle 10 min einen Befehl in der Console ausführt dazu bin ich so vorgegangen:...
  5. Cronjobs werden nicht ausgeführt

    Cronjobs werden nicht ausgeführt: Hallo, hab hier folgendes Problem auf nem Suse 9.3-Server, es werden keine Cronjobs mehr ausgeführt, obwohl cron läuft... Wo setze ich denn...