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.
Antworten:
Ich habe den Cron-Job zur Bearbeitung geöffnet mit:
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).
quelle