Der stündliche Cron-Job wird nicht ausgeführt, er wird jedoch manuell ausgeführt

420
Choppra

Hintergrund - Das System hat zwei verschiedene Versionen von Ruby installiert. Ich muss die neueste Version verwenden, um dieses von mir erstellte Monitorskript auszuführen

Dies ist meine Crontab-Linie:

0 * * * * /usr/local/rvm/rubies/ruby-2.2.1/bin/ruby /home/nexpose/ruby/console_monitor.rb 

Wenn ich das mache:

/usr/local/rvm/rubies/ruby-2.2.1/bin/ruby /home/nexpose/ruby/console_monitor.rb

Es funktioniert wie erwartet und schickt mir sogar eine E-Mail, wie sie entworfen wurde

Wenn ich Syslog überprüfe, sehe ich nicht viel. Ich sehe, dass es ausgeführt wird, aber keine Fehler angezeigt werden ..

 # which ruby /usr/local/rvm/rubies/ruby-2.2.1/bin/ruby # ruby -v ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux] 

Hat das mit meiner PATH-Konfiguration zu tun? Ich dachte, ich würde das umgehen, indem ich direkt auf das binäre Rubin zeige?

0

1 Antwort auf die Frage

0
RedGrittyBrick

Denken Sie daran, dass Cron-Jobs nur minimale Umgebungseinstellungen haben. Sie haben nicht die Einstellungen, die Sie in einer interaktiven Shell sehen. Cron wird nicht ausgeführt ~/.login, ~/.bashrcetc.

Um Fehler von einem Cron-Job zu sehen, finde ich es am bequemsten, STDOUT und STDERR in eine Datei umzuleiten. zB > /tmp/cron.out 2>&1an den crontab-Eintrag anhängen . Andernfalls kann Ihr System die Ausgabe in eine E-Mail-Nachricht an den Eigentümer der Crontab packen.