Ich habe diesen Cron
38 * * * * /bin/bash -l -c 'cd /var/rails/site/releases/20120705144335 && script/rails runner -e qa '\''Play.load_lists'\'''
Ich habe diesen Cron unter einem anderen Benutzer, also wechsle ich die Benutzer zur Bereitstellung
sudo su deploy
crontab -e
und ich sehe mein cron, dann beschließe ich das Protokoll unter dem Root-Benutzer
tail -n300 -f /var/log/syslog
und ich sehe meinen cron
Jul 5 11:38:01 ip-10-70-75-234 CRON[4971]: (deploy) CMD (/bin/bash -l -c 'cd /var/rails/site/releases/20120705144335 && script/rails runner -e qa '\''Play.load_lists'\''')
Jul 5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)
Aber der Cron läuft entweder nicht oder es gibt ein Berechtigungsproblem ... Wenn ich die Aufgabe in der Konsole ausführe, funktioniert sie großartig, aber nicht im Cron ... keine Ahnung, was mir fehlt
Dies ist Ubuntu 12.04 LTS
Vielleicht kann ich irgendwo eine detailliertere Liste protokollieren, um die Fehler zu sehen
ubuntu
permissions
cron
ubuntu-12.04
Matt Elhotiby
quelle
quelle
&& echo "I did it">>/tmp/test.log
. B. a hinzufügen . Dann, nachdem es ausgeführt wurde (gemäß Ihrem Syslog), überprüfen Sie,/tmp/test.log
ob es a) erstellt wurde und b) die Wörter in enthält.Antworten:
CRON liefert die Ausgabe der Anwendungen (stdout, stderr) per lokaler Mail. In Ubuntu ist derzeit standardmäßig kein MTA (Mail Transfer Agent) installiert. CRON druckt eine Benachrichtigung in die Systemprotokolldatei, wenn eine Zustellung fehlgeschlagen ist:
Sie können einen MTA, z. B. Postfix, nur für den internen (lokalen) Gebrauch installieren, z
Während der Installation werden Sie gefragt, welche Standardkonfiguration verwendet werden soll. Sie sollten die
Local only
Konfiguration auswählen .Danach finden Sie die Ausgabe der von CRON ausgeführten Anwendungen mit
Natürlich können Sie die Protokollausgabe auch in eine dedizierte Protokolldatei schreiben oder die Ausgabe mithilfe der integrierten Shell-Funktionalität in eine Datei umleiten / umleiten ...
quelle