Ich versuche, eine Cron-Datei in/etc/croon platziert werden. d. Mein Problem ist, dass ich diese Datei nicht aktualisieren möchte, also suche ich nach einer Möglichkeit, die Softwareversion dynamisch aus einer Datei zu bekommen. Ich habe einige andere Variablen, aber für jetzt denke ich, das Problem ist mit $ (cat /software/VERSION)
, es funktioniert sehr gut in Shell-Skript, aber nicht auf croon. DieseWie dynamisch gesetzt Variablen auf Cron?
#!/bin/bash
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
APPLICATION_ENVIRONMENT=SOME_STRING
VERSION=$(cat /software/VERSION)
HOME=/var/www/scripts/$VERSION/cron
CRON_LOG_DIR=/var/www/scripts/logs
*/2 * * * * root cd $HOME & php -f $HOME/do_something.php $APPLICATION_ENVIRONMENT >> $CRON_LOG/something.log
ist die Ausgabe auf cron log:
(root) CMD (cd $HOME & php -f $HOME/do_something.php $APPLICATION_ENVIRONMENT >> $CRON_LOG/something.log)
(CRON) ERROR chdir failed (/srv/www/tdp/public/$VERSION/backend/cron): No such file or directory
der Cron könnte ein Shell (oder PHP) Skript aufrufen. es ist kein Ort, um Programmierung zu setzen – nogad