wie führe ich einen NPM-Build aus einem durch Cronjob ausgelösten Bash-Skript aus?

wie führe ich einen NPM-Build aus einem durch Cronjob ausgelösten Bash-Skript aus?

Ich habe ein sehr einfaches Bash-Skript (run-build.sh):

cd /var/www/project
npm run build

Dieses Skript funktioniert einwandfrei, wenn ich es über die Befehlszeile ausführe, aber ich möchte es alle 30 Minuten über einen Cron-Job ausführen:

*/30 * * * * /var/www/project/run-build.sh >> /var/www/test.log 2>&1

Was aus irgendeinem Grund nicht funktioniert. Ich habe verschiedene andere Ansätze ausprobiert, z. B. das Ausführen des Cron-Jobs als Root-Benutzer oder das Hinzufügen des Pfads zum Knoten als Teil des Cron-Jobs. Ich habe jedoch noch keine Lösung gefunden, weshalb ich jetzt hier poste.

Hat jemand eine Idee, wie dieser Cron-Job zum Laufen gebracht wird?

Antwort1

Ich habe meinen Cronjob wie folgt aktualisiert:

* */12 * * * sudo -u user /var/www/project/run-build.sh >> /var/www/test.log 2>&1

und jetzt funktioniert es. Ich bin sicher, dass ich das schon einmal versucht habe, aber ich muss etwas anderes ausprobiert haben.

Antwort2

Ich hatte ein ähnliches Problem. In meinem Fall lag das Problem daran, dass mein .sh-Skript keine Ausführungsberechtigung hatte.

Überprüfen Sie mit , ob die Skriptdatei über Ausführungsberechtigung ( xFlag) verfügt ll. Wenn nicht, etwas wie:

chmod 744 file

sollte Ihrem Benutzer die Ausführung ohne Root ermöglichen.

verwandte Informationen