Cronjobs laufen nicht

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
 

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.
 

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.
 

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.
 

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.
 

Till

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

minggi

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

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
 

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/
 

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?
 

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.
 

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?
 

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.
 

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.
 

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?
 

Werbung

Top