Heim > Artikel > Backend-Entwicklung > ubuntu – Die PHP-Aufgabe in der geplanten Task-Crontab in Linux kann nicht ausgeführt werden. Bitte fragen Sie nach möglichen Gründen.
Das test.php-Skript wartet auf die Ausführung. Dieses Skript kann in der lokalen Umgebung ausgeführt werden. Es kann auch durch manuelles Ausführen von php test.php unter Linux ausgeführt werden
<code>$name='./log/20161025.txt'; if(file_exists($name)) { file_put_contents($name, '定时任务开始了'); }</code>Führen Sie crontab -e aus, um geplante Aufgaben zu bearbeiten
<code>* * * * * /usr/bin/php /home/wwwroot/demo/test.php > /var/log/cron.log </code>Mein Versuch:
Ergänzung:
Die letzte geplante Testaufgabe kann ausgeführt werden
<code>$name=__DIR__.'/log/20161025.txt'; if(file_exists($name)) { file_put_contents($name,date('Y-m-d H:i:s',time())."\r\n",FILE_APPEND); }</code>Verwenden Sie das Skript zum Drucken der aktuellen Uhrzeit, das jede Minute ausgeführt wird
Antwortinhalt:
Führen Sie crontab -e aus, um geplante Aufgaben zu bearbeiten
<code>$name='./log/20161025.txt'; if(file_exists($name)) { file_put_contents($name, '定时任务开始了'); }</code>
Mein Versuch:
<code>* * * * * /usr/bin/php /home/wwwroot/demo/test.php > /var/log/cron.log </code>
Ergänzung:
Die letzte geplante Testaufgabe kann ausgeführt werden
<code>$name=__DIR__.'/log/20161025.txt'; if(file_exists($name)) { file_put_contents($name,date('Y-m-d H:i:s',time())."\r\n",FILE_APPEND); }</code>
Der PHP-Pfad ist korrekt, aber beim Starten der geplanten Aufgabe ist das Arbeitsverzeichnis nicht das Verzeichnis, in dem sich Ihre PHP-Datei befindet, daher muss Ihr Code geändert werden
<code>$name=__DIR__.'/log/20161025.txt'; if(file_exists($name)) { file_put_contents($name, '定时任务开始了'); }</code>Es fühlt sich an, als ob der Pfad falsch ist. Versuchen Sie, die relative Adresse im PHP-Skript in einen absoluten Pfad zu ändern
Der PHP-Pfad ist korrekt, der Fehler liegt in einigen Pfaden im PHP-Code. Vermeiden Sie beim Schreiben von Befehlszeilenprogrammen die Verwendung von Abhängigkeiten, z. B. relativen Verzeichnissen Sie starten Crontab, um Ihr PHP-Skript auszuführen, führen es einmal manuell aus und schon wissen Sie, wo der Fehler liegt.
Drucken Sie Ihren relativen Pfad. Es darf nicht der Weg sein, den Sie sich vorgestellt haben.
Sie können
vor
. locate 20161025.txt
locate
updatedb
Stellen Sie sicher, dass Sie Berechtigungsprobleme haben. Führen Sie das folgende crontab -l aus, um sicherzustellen, dass Sie die geplante Aufgabe erfolgreich hinzugefügt haben