2016-05-17 8 views
0

Ich habe ein Skript, das einen Befehl ausführt. Ich speichere die Ausgabe dieses Befehls in einem Array und überprüfe den Inhalt der Ausgabe, um mir eine Erfolgs- oder eine Fehlernachricht zu schicken.Andere Mail von Shell-Skript und Cron das Skript ausgeführt

Das funktioniert gut, wenn ich das Skript selbst ausführen. Aber wenn ich das Skript als cronjob ausführen, erhalte ich eine Fehlermail unabhängig von der Ausgabe.

Ich benutze alle abs paths im Skript und weiß, dass der Cron ausgeführt wird, da ich in meinen Protokollen sehe, dass die command is executed successfully.

Kann mir jemand sagen, warum der Unterschied?

Eine Sache zu beachten ist, dauert der Befehl etwa eine Minute, um die Ausführung zu beenden und das Skript wartet, bis der Befehl ausgeführt wird, um die Ausgabe zu überprüfen. So sehe ich eine kleine Verzögerung in der Mail, wenn ich das Skript ausführe. Aber im Cron bekomme ich sofort eine Mail zur Laufzeit. Ich gehe davon aus, dass der Cron nicht auf die Ausführung des Befehls wartet und die Ausgabe überprüft.

Könnte das der Fall sein?

Antwort

2

Bei der Ausführung von crontab können Sie sich nicht auf Umgebungsvariablen, TTY oder Pfade verlassen. Hört sich an, als hätten Sie Pfade sortiert, aber der Mailer erwartet vielleicht etwas über Sie. Versuchen Sie, Ihr Skript ohne Ihre Umgebung auszuführen, um aussagekräftige Nachrichten zu Ihrem Problem zu erhalten: su {Ihr_Name} -c {Ihr Skript}

+0

Awesome, Wayne. Ich habe den Befehl ausgeführt, wie Sie gesagt haben, und festgestellt, dass der Cron Probleme beim Laden einer Lib-Datei hatte, damit das Skript ausgeführt werden konnte. Ich lade es jetzt von einem Wrapper im Skript. Danke für die schnelle Antwort. – user3164754

Verwandte Themen