Ich habe das in meinem crontab:
PATH=/usr/bin:/usr/local/bin:$PATH
*/1 * * * * /usr/bin/env bash > ~/cron.log 2>&1
Die Ausgabe in cron.log
ist das Folgende:
/usr/bin/env bash: No such file or directory
/usr/bin/env
ebenso gut wie /bin/bash
beides existiert. Und ich kann diesen Befehl auch ohne Fehler von demselben Benutzer ausführen, zu dem diese crontab gehört. Ich habe auch versucht, hinzuzufügen
SHELL=/bin/bash
an die Spitze der Crontab. Keine Wirkung. Ich habe keine Ahnung, was los ist. Auch das:
*/1 * * * * which bash > ~/cron.log 2>&1
zeigt überhaupt nichts in der Protokolldatei. Dies ist alles, was ich für diesen Benutzer in meinem crontab habe, sonst nichts.
bash
cron
computing-environment
snitko
quelle
quelle
`which bash`
, anstattwhich bash
?Antworten:
Da dein Drehbuch das
cron
Läuft beginnt mit#!/usr/bin/env bash
( Recht? ), alles was Sie in Ihrem tun müssencrontab
ist:Und stellen Sie sicher, dass das Skript tatsächlich etwas ausgibt. Wenn Ihr Skript vollständig leise ist, wird Ihre Protokolldatei werden sei leer.
quelle
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
auch. Ich musste mich als root (nicht als sudo) beim Server anmelden, um herauszufinden, wie der root-Pfad standardmäßig lautete. Anscheinend ist cron zu dumm, um das Standardprofil des Benutzers zu verwendenEs stellte sich heraus, dass ich diese Zeile nicht hätte haben sollen:
Das Entfernen von crontab hat das Problem behoben.
quelle
Bin mir nicht sicher, was genau du versuchst, aber für mich:
Also versuche
quelle
rvm-exec
) hat#!/usr/bin/env bash
Oben drauf und ich kann es nicht wirklich ändern, weil es alles kaputt macht. Ich erkannte, dass das Problem in diesem speziellen Fall bei cron und nicht bei rvm liegt, da cron nicht einmal weiß, wo bash ist./usr/bin/env /bin/bash
;/usr/bin/env
durchsucht den Pfad nachbash
; Sie verwenden/usr/bin/env
findenbash
wenn Sie nicht sicher sind, wobash
ist bei.