Frage

*/5 * * * * my command

Dieser Eintrag funktioniert, aber alle 5 Minuten zweimal ausgeführt wird, warum?

In /var/log/cron es zeigt:

Jun 16 22:20:01 Test CROND[12512]: (root) CMD (my command)
Jun 16 22:20:01 Test CROND[12516]: (root) CMD (my command)

So ist es nicht von zwei Benutzern ist.

Es wird nur einmal mit crontab -e -u root eingetragen. Der Befehl ist ein PHP-Befehl.

War es hilfreich?

Lösung

Nichts in der Beschreibung gibt Grund dafür zweimal ausgeführt werden. Schauen Sie sich woanders.

  • Sie zwei Benutzer nennen es?
  • Ist es trat zweimal?
  • Ist es selbst nennen?
  • Ist es in Bewegung Bedingungen für die Wiederholung?

Wenn es ein Shell-Skript ist Sie ausführen, haben es whoami und date in eine Protokolldatei anhängen. Sie sollten den Grund graben können.

UPDATE

Geben Sie ps -A, stellen Sie sicher, crond nicht zweimal ausgeführt wird.

Andere Tipps

Die wget in crontab haben oft eine Grenze von 15 Minuten. In unserem Fall war dies nur der Fall, und nach diesen 15 Minuten wird der Job endet mit einem Timeout und dann wieder läuft sofort wieder. So war die Lösung dieses Problems die cronjob in crontab einzurichten etwas wie folgt aus:

1 2 * * * root wget --read-timeout=3600 -O - 'http://cron-job-url' >/dev/null 2>&1

... statt

 1 2 * * * root wget -O - 'http://cron-job-url' >/dev/null 2>&1

Also, wget ist die Sache. Bedeutung 3600 = 1 Stunde dann. Oder mehr, wenn Sie brauchen!

Wenn es ein Befehl für eine Anwendung ist Sie installiert, vielleicht hinzugefügt es bereits den gleichen Eintrag oder /etc/crontab /etc/cron.d/<something>.

Ich bestätige - mein Cron auch zweimal laufen ...

Jul 24 14:40:01 localhost cron[2713]: (root) CMD (/etc/apache2/generator/reloader.do)
Jul 24 14:41:01 localhost cron[9481]: (root) CMD (/etc/apache2/generator/reloader.do)
Jul 24 14:41:01 localhost cron[10724]: (root) CMD (/etc/apache2/generator/reloader.do)
Jul 24 14:42:01 localhost cron[20380]: (root) CMD (/etc/apache2/generator/reloader.do)
Jul 24 14:42:01 localhost cron[20832]: (root) CMD (/etc/apache2/generator/reloader.do)

Meine crontab

grep -R / var / spool / -e reloader

/var/spool/cron/crontabs/root:* * * * * /etc/apache2/generator/reloader.do

Ausgang:

whoami
date
------

Ausgabe:

root
root
Tue Jul 24 14:46:02 CEST 2012
---------
Tue Jul 24 14:46:03 CEST 2012
---------

Meine aktuelle Problemumgehung ist:

if [ -f /etc/apache2/generator/reloader.lock ]
then
exit
fi
touch /etc/apache2/generator/reloader.lock
/etc/apache2/generator/reloader
rm /etc/apache2/generator/reloader.lock

Aber es ist nicht die Antwort, warum das passieren ...

System - gentoo Cron - vixie-cron

Teil ps aux wwf Ausgang (innen Crontask zu Mittag gegessen)

root     10843  0.0  0.0  16480   560 ?        Ss   Jun06   0:01 /usr/sbin/cron
root     29797  0.0  0.0  25020   964 ?        S    15:08   0:00  \_ /usr/sbin/cron
root     29799  0.0  0.0   9188  1228 ?        Ss   15:08   0:00      \_ /bin/bash /etc/apache2/generator/reloader
root     29822  0.0  0.0  14800   988 ?        R    15:08   0:00          \_ ps aux wwf
------
root      8215  0.0  0.0  16480   836 ?        Ss   14:23   0:00 /usr/sbin/cron
root     31419  0.0  0.0  25020   968 ?        S    15:08   0:00  \_ /usr/sbin/cron
root     31423  0.0  0.0   9188  1228 ?        Ss   15:08   0:00      \_ /bin/bash /etc/apache2/generator/reloader
root     31431  0.0  0.0  14804  1004 ?        R    15:08   0:00          \_ ps aux wwf

EDIT:

Ich habe bemerkt, dass ein von cron Prozess Bericht Jun06 als Startdatum (heute ist Jun24)

root     10843  0.0  0.0  16480   560 ?        Ss   Jun06   0:01 /usr/sbin/cron
root      8215  0.0  0.0  16480   836 ?        Ss   14:23   0:00 /usr/sbin/cron

Zweiter Prozess Bericht korrekt (Server Uprime- ist ~ 40 Minuten - ich es recenty neu gestartet haben) Eine wichtige Informationen - es ist V-Server auf dem Host-Computer ausgeführt

.

Egal, was ich (/etc/init.d/vixie-cron neu starten) seinen Anfang mit der gleichen PID

GELÖST:

Ich habe den Grund gefunden. Ein V-Server wurde zweimal durchgeführt, mit anderem Kontext. Mögliche Erklärung - jemand hat den Kontext geändert, während Maschine lief, und als Ergebnis wurden nicht alle Prozesse getötet, und was, mehr s - sie neue Instanz von vserver (Kontext 303 und 3031) haben keinen Einfluss auf:

root     10843  3031 developer      0.0  0.0  16480   560 ?        Ss   Jun06   0:01 /usr/sbin/cron
root     16509   303 developer      0.0  0.0  16480   836 ?        Ss   15:18   0:00 /usr/sbin/cron

Ich habe TERM alten Prozess, und Problem gelöst ist.

Für Sie sicher, es ist nicht der crontab-Eintrag, der es verursacht zweimal laufen. Der schnellste Weg, um herauszufinden, was los ist, ist einige Debug auf den Cron-Job-Skript hinzuzufügen. Wenn Sie nichts tun, dann standardmäßig wird der cron Ausgabe an root@localhost per Post (es sei denn, Sie konfiguriert haben, dies anders zu sein), so vorausgesetzt, Sie Root-Zugriff haben, fügen Sie einige Debug-Informationen an das Skript, wie zum Beispiel:

echo "Script starting"
date
whoami

und Blick auf den Ausgang. Dadurch werden Sie als zu herauszufinden, erhalten begonnen, wie dies zweimal genannt zu werden.

Ich hatte das gleiche Problem einmal, in meinem Fall war, dass ich den Cron-Dienst versehentlich zweimal initialisieren. Nachdem ich cron # /etc/init.d/crond stop gestoppt und begann es wieder # /etc/init.d/crond start, es funktionierte perfekt.

Ich hoffe, das jemand helfen kann.

Es sieht aus wie Sie zwei crond laufende haben, eine mit PID 12512 und einem mit PID 12516.

Ich verwende OpenWrt.

Ich habe das gleiche Problem, aber ich habe nur einen cron: ps | grep crond:

31447 root      1508 S    /usr/sbin/crond -c /etc/crontabs -l 8 
31454 root      1500 S    sh -c ps | grep crond 
31456 root      1496 S    grep crond

logread | grep cron

May 27 13:15:01 decibox cron.info crond[31447]: crond: USER root pid 1594 cmd /root/check_connect.php.sh 
May 27 13:20:01 decibox cron.info crond[31447]: crond: USER root pid 2103 cmd /root/check_connect.php.sh 
May 27 13:20:01 decibox cron.info crond[31447]: crond: USER root pid 2325 cmd /root/check_connect.php.sh 
May 27 13:25:01 decibox cron.info crond[31447]: crond: USER root pid 2880 cmd /root/check_connect.php.sh

Ich hatte das gleiche Problem aufgrund eines doppelten Eintrag in conf-Datei:

# grep /syslog /etc/rsyslog.conf /etc/rsyslog.d/50-default.conf 
/etc/rsyslog.conf:*.*;auth,authpriv,kern,mail.none      -/var/log/syslog
/etc/rsyslog.d/50-default.conf:*.*;auth,authpriv,kern,mail.none -/var/log/syslog

Klar Kommentierung eines der 2 löst das Problem

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top