Cron-Jobs für unterschiedliche Zeiten eingestellt, aber gleichzeitig ausgeführt

1

Ich habe eine Datei, die ich mit den folgenden Jobs in Crontab geladen habe, und Crontab -l meldet Folgendes:

# runs daily at 2:00 am and 2:05 am
30 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script1.php 35 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script2.php

Cleaner-Version von Output Above

# runs daily at 2:00 am and 2:05 am

30 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script1.php 
35 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script2.php

Ich habe die Regeln dieser Site befolgt:

So richten Sie einen Cron-Job ein

Ich hatte anfangs ein Problem mit der Anzeige beider Jobs in der Crontab-Liste. Ich habe dieses Problem gelöst, indem alle Jobs in einer Zeile eingerichtet wurden, wie im Abschnitt zu:

Umgang mit Fehlermeldungen von Crontab

Nachdem ich beide Jobs richtig aufgelistet hatte, testete ich, ob sie korrekt ausgeführt wurden. Um 12:31 Uhr habe ich festgestellt, dass beide ausgeführten Skripts für script1 und script2 unterschiedliche Tabellen in einer MySQL-Datenbank ändern.

Warum ist das passiert? Wie kann ich es so planen, dass script2 zu seiner eigenen geplanten Zeit ausgeführt wird?

Mir ist klar, dass dies kein so großes Problem ist, aber ich bin neugierig zu erfahren.

Vielen Dank für Ihre Hilfe.

mcv
quelle
"Wenn Kommentare und Code nicht übereinstimmen, können beide falsch sein" ... Der Kommentar in Ihrem Crontab lautet 2:00 und 2:05. Korrigieren oder entfernen Sie diesen Kommentar. Das heißt, ich habe nie gesehen, dass Cron Dinge zur falschen Zeit ausgeführt hat. Überprüfen Sie syslogs, um zu sehen, ob cron was und wann protokolliert. Sie sagen auch "das Problem wurde gelöst, indem alle Jobs in einer Zeile eingerichtet wurden"; Sind Sie sicher, dass das Crontab während der Anzeige geändert wird?
wurtel
Die Kommentare wirken sich nicht darauf aus. Ich habe es einfach so gelassen, dass ich mich erinnern konnte, wann ich die Jobs effektiv abschließen wollte. Ich habe eine Lösung, die ich gerade posten werde.
mcv

Antworten:

1

Ich habe den Cron-Job zur Bearbeitung geöffnet mit:

crontab -e

Und mit Nano bearbeitet.

Ich habe ein neues Zeilenzeichen zwischen den Jobs hinzugefügt, und das Problem wurde behoben.

Die ursprünglich erstellte Datei wurde auf einem Windows-Computer erstellt, der FTP auf dem Server war. Ich habe die Datei ausgecheckt und sie wurde in Notepad ++ ohne Erweiterung erstellt, auch mit der Erweiterung .TXT. Das EOL-Zeichen wurde auf UNIX gesetzt.

Unabhängig vom Szenario werden beim Laden der Datei beide Jobs zum ersten geplanten Zeitpunkt ausgeführt. Nachdem ich Cron-Jobs mit dem obigen Edit geändert habe. Die Cron-Jobs werden zur geplanten Zeit ausgeführt (im Abstand von 5 Minuten).

mcv
quelle
Interessant! Es war also ein Problem mit der Datei selbst. +1, um es zu entdecken.
fedorqui