Cronjobs laufen nicht

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von minggi, 16. Dez. 2010.

  1. minggi

    minggi New Member

    Bei mir laufen keine cronjobs.
    Zuerst war es mein Fehler: ich hatte das Cron limit auf 0. Nachdem ich das geändert habe liefen die Jobs aber immer noch nicht.
    Nach einigem Suchen habe ich gelesen, dass es etwas mit Jailkit zu tun haben könnte. Jailkit war aber gar nicht aktiviert! Ich habe Jailkit also gestartet. Leider ergab das keine Besserung.
    Frage: muss jailkit laufen? Wieso was es nicht freigeschalten?

    Im Folder /etc/cron.d sehe ich die Datei ispc_web2 mit den definierten jobs darin.

    Wenn ich das script mit sudo -u web2 /asdasda/asdasd laufen lasse funktioniert es.

    Anmerkung: meine scripts haben kein .sh am ende (sollte doch keine Rolle spielen)

    Das ISPC Cron-Protokoll bleibt leer.

    Die Installation ist komplett frisch!

    Im Systemprotokoll sehe ich folgendes:
    Dec 15 23:58:01 webserver /usr/sbin/cron[439]: (root) CMD (/usr/local/ispconfig/server/server.sh &> /dev/null)
    Dec 15 23:59:01 webserver /usr/sbin/cron[477]: (root) CMD (/usr/local/ispconfig/server/server.sh &> /dev/null)
    Dec 16 00:00:01 webserver /usr/sbin/cron[519]: Permission denied
    Dec 16 00:00:01 webserver /usr/sbin/cron[518]: Permission denied
    Dec 16 00:00:01 webserver /usr/sbin/cron[526]: (root) CMD (/usr/local/ispconfig/server/server.sh &> /dev/null)
    Dec 16 00:00:01 webserver /usr/sbin/cron[521]: Permission denied


    besten dank
     
  2. Till

    Till Administrator

    Wie lautet denn der exakte Befehl den Du als cronjob angelegt hast.

    Jailkit ist eine jailed shell zur Beschränkung der Rechte eines ssh users und kein daemon. Du kannst jailkit also garnicht starten und es muss folglich auch nicht gestartet sein.
     
  3. minggi

    minggi New Member

    Ich gebe nur folgendes ein:
    \srv\prog\webcam\test_upload

    test_upload ist ein shell programm mit befehelen wie cp usw.
    mit sudo lief es.
     
  4. Till

    Till Administrator

    Vermutlich hast Du bei Dir jailkit für cronjobs aktiviert, was aus Sicherheitsgründen auch sehr zu empfehlen. Du musst das Script dann also ins jail legen und auch einen Pfad relativ zum jail root angeben.

    Laso das jail root des web 1 des client 1 ist z.B. /var/www/clients/client1/web/, wenn Du alos ein script in einen Unterordner bin legst (/var/www/clients/client1/web/bin/test_upload) dann lautet der Aufruf im cronjob /bin/test_upload

    Damit kannst Du gejailte scripte nicht testen.
     
  5. minggi

    minggi New Member

    Danke. ich werde das noch testen.

    Frage: Wo wir jailkit für cronjobs aktiviert?
     
  6. minggi

    minggi New Member

    Gemäss Anleitung habe ich den Cron Job Typ des Users auf Full Cron eingestellt. Trotzdem arbeitet er die shell nicht ab.
     
  7. Till

    Till Administrator

    Und Du hast den cronjob auch komplett gelöscht und neu erstellt nachdem Du es im client umgestellt hast? Die Client einstellungen sind nur limits, sie beeinflussen also nur das neu erstelllen von etwas und keine bestehenden Konfigurationen.
     
  8. minggi

    minggi New Member

    Ja habe ich.
    In der DB steht zudem als type 'full'. Damit sollte es doch übernommen worden sein oder?
     
  9. Till

    Till Administrator

    Dann schau mal Dein shell script durch, ob alle darin enthaltenen Befehle volle Pfade benutzen.
     
  10. minggi

    minggi New Member

    Ich habe im shell script nur noch einen cp befehl mit fullpath.
    Leider auch kein Erfolg...
    Was kann das bloss sein?
     
  11. Till

    Till Administrator

    Dann poste bitte mal die datei ispc_web2 aus dem cron.d Ordner sowie Dein Shellscript.
     
  12. minggi

    minggi New Member

    ispc_web2:

    MAILTO=''

    */5 * * * * web2 /srv/prog/webcam/giw_upload


    shell:
    #!/bin/sh
    cp /srv/ftp/webcam/in/giw_*.jpg /srv/prog/webcam/giw/

    Danke für den Support
     
  13. Till

    Till Administrator

    Innerhalb von cron ist die Umgebungsvariable $PATH nicht gesetzt, deshalb musst Du in cronjobs sowie in scripten die von Cronjobs ausgeführt werden immer absolute Pfade zu allen Programmen verwenden. Hatte ich ja in #9 bereits gefragt.

    Dein Scribt benutzt aber cp ohne vollen Pfad, somit kann cron cp nicht finden und das Scriptw ird zwar ausgeführt, schlägt ber fehl. Der richtige Befehl lautet:

    /bin/cp /srv/ftp/webcam/in/giw_*.jpg /srv/prog/webcam/giw/
     
  14. minggi

    minggi New Member

    Geht leider immer noch nicht.
    Ich habe jetzt mal alle Cronjobs gelöscht.
    Danach erscheint abber in messages immer noch ein permission denied.
    könnte das etwas bedeuten?
    Dec 18 20:46:01 webserver /usr/sbin/cron[24893]: (root) CMD (/usr/local/ispconfig/server/server.sh &> /dev/null)
    Dec 18 20:47:01 webserver /usr/sbin/cron[24922]: (root) CMD (/usr/local/ispconfig/server/server.sh &> /dev/null)
    Dec 18 20:48:01 webserver /usr/sbin/cron[24950]: (root) CMD (/usr/local/ispconfig/server/server.sh &> /dev/null)
    Dec 18 20:49:01 webserver /usr/sbin/cron[24987]: (root) CMD (/usr/local/ispconfig/server/server.sh &> /dev/null)
    Dec 18 20:50:01 webserver /usr/sbin/cron[25031]: Permission denied
    Dec 18 20:50:01 webserver /usr/sbin/cron[25033]: (root) CMD (/usr/local/ispconfig/server/server.sh &> /dev/null

    oder was kann ich sonst noch machen?
     
  15. Till

    Till Administrator

    Das permission denied kann von irgend einem sytem cronjob kommen, das muss nichts mit ispconfig zu tun haben. Da Du ja alle ispconfig cronjobs geloscht hast, ist es also auch nicht von ispconfig.
     
  16. minggi

    minggi New Member

    Ich habe jetzt mal ein script in den jail gestellt und den cronjob neu konfiguriert.

    Nun sehe ich ein Permission denied mehr und das Skript wird nicht ausgeführt.

    Till hast du noch eine idee?
     
  17. Till

    Till Administrator

    Bist Du sicher, daß das script nicht ausgeführt wird? Ein Script kann aus dem Jail heraus ja nicht auf Verzeichnisse außerhalb des Jails zugreifen. Dein obiges Script würde daher in einem Jail auch nicht gehen.

    Erstelle mal zum testen ein neues script welches innerhalb des jails eine neue datei mit touch anlegt. Also wenn das jail z.B. ist:

    /srv/www/clients/client1/web2/ dann erstelle ein script:

    #!/bin/sh
    touch /tmp/test.txt


    und schau dann nach ein paar Minuten nach, ob die Datei /srv/www/clients/client1/web2/tmp/test.txt angelegt worden ist.Der Pfad muss natürlich zum Pfad des Jails passen.
     
  18. minggi

    minggi New Member

    Werde ich versuchen.
    Um ganze sicher zu gehen: Wo der Pfad des Jails genau konfiguriert?
     
  19. Till

    Till Administrator

    Der Pfad des jails wird nicht gesondert konfiguriert, er ist immer identisch mit dem Pfad des Webs, zu dem der Cronjob bzw. ssh User gehört.
     
  20. minggi

    minggi New Member

    Ging leider nichts...
    Ich habe nun den cronjob mit angepasst und einfach root als user genommen (alles ohne jail) -> lief.
    Sobald ich den user wieder eingetragen hatte, kam permission denied.
    ich habe alle pfade angepast von vorn bis hinten durch ->nichts

    Was kann das bloss sein?
     

Diese Seite empfehlen