Sie sind nicht angemeldet.

1

12.01.2007, 13:57

[gelöst] Cronjob wird nicht ausgeführt

Hi Leute,

ich habe bei uns einen lokalen Gentoor RSYNC MIRROR installiert.
Das Mirror funktioniert wunderbar.

Wenn ich in das Verzeichnis /opt/gentoo-rsync gehe und folgendes ausführe:

sh rsync-gentoo-portage.sh

Dann wird der RSYNC Server korrekt synchronisiert.

Allerdings funktioniert der Cronjob nicht.

Ich möchte, dass mein Mirror jeden tag um 12 Uhr Mittags aktualisiert wird.

Dazu habe ich folgenden Cronjob gemacht:

crontab -e
und folgendes reingeschrieben:

0 12 * * * /opt/gentoo-rsync/rsync-gentoo-portage.sh

Diesen Cronjob habe ich gestern Abend eingegeben.
Aber heute um 12 Uhr wurde der Cronjob defintiv nicht ausgeführt.

Andere Cronjobs hingegen werden ausgeführt wie z.b. dieser:

gentoo-server ~ # crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXX3WSqc2 installed on Fri Jan 12 00:13:10 2007)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
*/5 * * * * /usr/bin/php /storage1/wwwdata/cacti/poller.php > /dev/null 2>&1
0 12 * * * /opt/gentoo-rsync/rsync-gentoo-portage.sh


Daher die kurze Frage:
Warum funktioniert der erste Crojon, der zweite aber nicht?

Für Hilfe wäre ich euch super dankbar.
Gruß,
C2DFreak

Gentoo Server

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »C2DFreak« (13.01.2007, 13:17)


2

12.01.2007, 16:42

Halllo,

mir ist aufgefallen das Du das Script mit "sh rsync-gentoo-portage.sh" von Hand startest, aber in Deiner Cronrab steht nur das Script.

Versuch mal bitte entweder zu kontrollieren ob das Script ausfürbar ist, oder versuch in Deine Crontab den Eintrag

Quellcode

1
0 12 * * * sh /opt/gentoo-rsync/rsync-gentoo-portage.sh


Gruß

3

12.01.2007, 16:51

Hi Danke für die Antwort.

Gestern Abend wollte ich ja eigentlich den Cronjob auf 0 uhr setzen und hatte daher:

folgendes gemacht:

0 0 * * * sh /opt/gentoo-rsync/rsync-gentoo-portage.sh

Also in dem Fall hatte ich SH vorne dran gesetzt.
Aber es geschah nichts...

Ich nutze Vixie Cron falls es etwas zur Sache tut.

Das seltsame:
Wenn ein Cronjob nicht richtig ausgeführt wird, gibt es ja normal eine info im syslog, eine email an den root etc.

Aber im Eventlog sieht es so aus, als ob dieser Cronjob gar nicht ausgeführt wird.

Theoretisch hätte der ja heute um 12 Uhr laufen müssen und so sah der Eventlog gegen 12 uhr aus:

Jan 12 11:50:01 gentoo-server cron[2887]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Jan 12 11:50:01 gentoo-server cron[2889]: (root) CMD (/usr/bin/php /storage1/wwwdata/cacti/poller.php > /dev/null 2>&1)
Jan 12 11:55:01 gentoo-server cron[2953]: (root) CMD (/usr/bin/php /storage1/wwwdata/cacti/poller.php > /dev/null 2>&1)
Jan 12 12:00:01 gentoo-server cron[3007]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Jan 12 12:00:01 gentoo-server cron[3010]: (root) CMD (/usr/bin/php /storage1/wwwdata/cacti/poller.php > /dev/null 2>&1)
Jan 12 12:00:01 gentoo-server cron[3014]: (root) CMD (rm -f /var/spool/cron/lastrun/cron.hourly)
Jan 12 12:05:01 gentoo-server cron[3077]: (root) CMD (/usr/bin/php /storage1/wwwdata/cacti/poller.php > /dev/null 2>&1)
Jan 12 12:05:46 gentoo-server sshd[3130]: Accepted keyboard-interactive/pam for root from 10.0.0.190 port 1460 ssh2
Jan 12 12:05:46 gentoo-server sshd(pam_unix)[3133]: session opened for user root by root

Wie man sieht wird der Cronjob für Cacti immer alle 5 Minuten ausgeführt.

Aber von dem anderen Cronjob der für 12 Uhr drin war, hat man gar nichts gesehen noch nichtmal ein Fehler...

Das ist der Punkt, der mich so wundert... So als ob Crontab den Job gar nicht erst startet...

An was kann das noch liegen? ich kann ja mal für 17 uhr ein Cronjob mit sh davor nochmal reinsetzen. Mal schauen ob der dann geht?

Also:

0 17 * * * sh /opt/gentoo-rsync/rsync-gentoo-portage.sh

So hab ich den jetzt rein.


gentoo-server ~ # crontab -e
crontab: installing new crontab
gentoo-server ~ # crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXXbgOtqk installed on Fri Jan 12 16:50:18 2007)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
*/5 * * * * /usr/bin/php /storage1/wwwdata/cacti/poller.php > /dev/null 2>&1
0 17 * * * sh /opt/gentoo-rsync/rsync-gentoo-portage.sh

So siehts jetzt aus.

Theoretisch müsste der jetzt in 10min laufen oder ist da irgendein Formfehler?
Gruß,
C2DFreak

Gentoo Server

4

12.01.2007, 17:03

Also der Cronjob wurde um 17 Uhr nicht ausgeführt :(

Jan 12 16:50:01 gentoo-server crontab[6954]: (root) BEGIN EDIT (root)
Jan 12 16:50:01 gentoo-server cron[6957]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Jan 12 16:50:01 gentoo-server cron[6959]: (root) CMD (/usr/bin/php /storage1/wwwdata/cacti/poller.php > /dev/null 2>&1)
Jan 12 16:50:18 gentoo-server crontab[6954]: (root) REPLACE (root)
Jan 12 16:50:18 gentoo-server crontab[6954]: (root) END EDIT (root)
Jan 12 16:50:22 gentoo-server crontab[7023]: (root) LIST (root)
Jan 12 16:51:01 gentoo-server cron[8010]: (root) RELOAD (crontabs/root)
Jan 12 16:51:38 gentoo-server smartd[30300]: Device: /dev/hda, SMART Prefailure Attribute: 8 Seek_Time_Performance changed from 253 to 251
Jan 12 16:51:51 gentoo-server smartd[30313]: Device: /dev/hda, SMART Prefailure Attribute: 8 Seek_Time_Performance changed from 253 to 251
Jan 12 16:55:02 gentoo-server cron[7136]: (root) CMD (/usr/bin/php /storage1/wwwdata/cacti/poller.php > /dev/null 2>&1)
Jan 12 17:00:01 gentoo-server cron[7246]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Jan 12 17:00:01 gentoo-server cron[7249]: (root) CMD (/usr/bin/php /storage1/wwwdata/cacti/poller.php > /dev/null 2>&1)
Jan 12 17:00:01 gentoo-server cron[7251]: (root) CMD (rm -f /var/spool/cron/lastrun/cron.hourly)

Hier das Logfile von 17 Uhr.

Auch im Log von rsync ist nichts zu sehen, dass das System versucht hat diesen Cronjob auszuführen..
Gruß,
C2DFreak

Gentoo Server

5

12.01.2007, 17:09

kannst Du mal versuchen das Script ausfürbar zu machen und dann ohne sh in die Crontab zu schreiben.

Ich hatte so ein Problem auch mal und habe mich dann entschieden das Srupt einfach nach /etc/cron.daily zu kopieren.

dann ging es bei mir auch.

Gruß

6

12.01.2007, 17:23

Zitat

Original von Planeshift
kannst Du mal versuchen das Script ausfürbar zu machen und dann ohne sh in die Crontab zu schreiben.

Ich hatte so ein Problem auch mal und habe mich dann entschieden das Srupt einfach nach /etc/cron.daily zu kopieren.

dann ging es bei mir auch.

Gruß


Thx für die Info.
Also ich habe mit chmod 755 das Script jetzt mal ausführbar gemacht:

Folgende Schritte:

gentoo-server gentoo-rsync # ls -l
total 20
drwxr-xr-x 156 root root 4096 Jan 12 11:40 portage
-rw-r--r-- 1 root root 332 Jan 11 23:38 rsync-gentoo-portage.sh
-rw-r--r-- 1 root root 162 Jan 12 12:08 rsync-gentoo-portage.sh.log
-rwxr-xr-x 1 root root 3476 Jan 11 23:38 rsynclogparse-extended.pl
gentoo-server gentoo-rsync # chmod 755 rsync-gentoo-portage.sh
gentoo-server gentoo-rsync # ls -l
total 20
drwxr-xr-x 156 root root 4096 Jan 12 11:40 portage
-rwxr-xr-x 1 root root 332 Jan 11 23:38 rsync-gentoo-portage.sh
-rw-r--r-- 1 root root 162 Jan 12 12:08 rsync-gentoo-portage.sh.log
-rwxr-xr-x 1 root root 3476 Jan 11 23:38 rsynclogparse-extended.pl

Und jetzt setze ich den Cronjob mal wiefolgt auf 18 Uhr:

0 18 * * * /opt/gentoo-rsync/rsync-gentoo-portage.sh

Vielleicht gehts ja jetzt, wo das Script direkt ausführbar ist... Ich sag dann um 18 Uhr bescheid, ob ers ausführt..
Gruß,
C2DFreak

Gentoo Server

7

12.01.2007, 17:31

Super, dann drück ich Dir mal alle Daumen. Ansonsten hast Du ja noch die /etc/cron.daily :)

8

12.01.2007, 18:19

mh der hat um 18 Uhr den Cronjob wieder nicht ausgeführt :(

Also muss ichs mal mit cron.daily testen?
Gruß,
C2DFreak

Gentoo Server

9

12.01.2007, 18:45

ja versuch es mal bitte mit der cron.daily.

Wann der cron.daily gestartet wird steht in der /etc/crontab

Gruß

10

12.01.2007, 19:25

Zitat

Original von C2DFreak
Also muss ichs mal mit cron.daily testen?

Welchen Cron hast Du eigentlich installiert? fcron und dcron kennen nämlich keine System-Crontab in /etc/crontab und können somit nicht ohne weiteres etwas mit den Verzeichnissen /etc/cron.daily etc. anfangen.
Seien Sie vorsichtig mit Gesundheitsbüchern - Sie könnten an einem Druckfehler sterben. [Mark Twain]

11

12.01.2007, 19:29

Zitat

Original von rudib

Zitat

Original von C2DFreak
Also muss ichs mal mit cron.daily testen?

Welchen Cron hast Du eigentlich installiert? fcron und dcron kennen nämlich keine System-Crontab in /etc/crontab und können somit nicht ohne weiteres etwas mit den Verzeichnissen /etc/cron.daily etc. anfangen.


Hallo rudib!

Das hat er doch geschrieben

Zitat

Ich nutze Vixie Cron falls es etwas zur Sache tut.


und somit muss es eigendlich gehen.

12

12.01.2007, 19:47

Zitat

Original von rudib

Zitat

Original von C2DFreak
Also muss ichs mal mit cron.daily testen?

Welchen Cron hast Du eigentlich installiert? fcron und dcron kennen nämlich keine System-Crontab in /etc/crontab und können somit nicht ohne weiteres etwas mit den Verzeichnissen /etc/cron.daily etc. anfangen.


Eine Frage dazu noch:

Welche Datei muss ich denn dann editieren um den cronjob in die cron.daily einzutragen?

cat /etc/crontab sagt:

0 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly
1 3 * * * root rm -f /var/spool/cron/lastrun/cron.daily
15 4 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly
30 5 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly
*/10 * * * * root test -x /usr/sbin/run-crons && /usr/sbin/run-crons
Gruß,
C2DFreak

Gentoo Server

13

12.01.2007, 19:53

Zitat

Original von Planeshift
Das hat er doch geschrieben

Zitat

Ich nutze Vixie Cron falls es etwas zur Sache tut.

und somit muss es eigendlich gehen.

Sorry - hatte ich überlesen.

Zitat

Original von C2DFreak
Eine Frage dazu noch:
Welche Datei muss ich denn dann editieren um den cronjob in die cron.daily einzutragen?

Du mußt Dein Skript (oder einen Link darauf) in das Verzeichnis /etc/cron.daily/ stellen.
Seien Sie vorsichtig mit Gesundheitsbüchern - Sie könnten an einem Druckfehler sterben. [Mark Twain]

14

12.01.2007, 19:56

Okay also einfach:

cd /etc/cron.daily

touch rsync
nano rsync
0 0 * * * /opt/gentoo-rsync/rsync-gentoo-portage.sh

Speichern und das wars?
Gruß,
C2DFreak

Gentoo Server

15

12.01.2007, 19:58

C2DFreak

du brauchst das script rsync-gentoo-portage.sh nur nach /etc/cron.daily kopieren.

Quellcode

1
cp /opt/gentoo-rsync/rsync-gentoo-portage.sh /etc/cron.daily


Wenn Du die Zeit ändern möchtest wann cron.daily gestartet wird, machst Du das in der /etc/crontab.

Gruß

16

12.01.2007, 20:01

Zitat

Original von Planeshift
C2DFreak

du brauchst das script rsync-gentoo-portage.sh nur nach /etc/cron.daily kopieren.

Quellcode

1
cp /opt/gentoo-rsync/rsync-gentoo-portage.sh /etc/cron.daily


Wenn Du die Zeit ändern möchtest wann cron.daily gestartet wird, machst Du das in der /etc/crontab.

Gruß


Hast Recht. Thx.

Ich werde es gleich mal testen. Und frühestens dann um 21 Uhr berichten ;)
Gruß,
C2DFreak

Gentoo Server

17

13.01.2007, 12:51

Hi Leute,

wenn ich es in die cron.daily kopiere klappt es.

Besten Dank an euch.
Gruß,
C2DFreak

Gentoo Server

18

13.01.2007, 12:58

C2DFreak, schön das es funktioniert hat.

Thema noch auf gelöst setzen :D :D

Gruß