it-swarm.com.de

Wie kann ich ein SH-Skript in Crontab ausführen?

Ich habe ein einfaches .sh-Skript:

#!/bin/bash
echo "Test1"
touch /home/john/test.txt
echo "Test2"

Es ist ausführbar und verfügbar (ugo + x). Wenn ich dieses Skript ausführe, funktioniert es wie erwartet.

Aber wenn ich versuche, es in Crontab auszuführen, erhalte ich keine Ergebnisse. Ich kann im Protokoll sehen, dass der Job gestartet wird und ich bekomme (Kein MTA installiert, Ausgabe verwerfen).

AFAIK - diese Meldung ist kein Fehler? Bedeutet das nur, dass ich keine Mail (oder keinen anderen Ausgabekanal) habe? Aber warum gibt es keine Ergebnisse aus dem Skript? Übrigens - in CRONTAB verwende ich folgende Zeile:

30 * * * * sh file.sh >> /home/john/log.log

Irgendeine Idee?

2
JanezKranjski

Wenn Ihr Skript ausführbar ist, muss auf Ihrer crontab /bin/sh file.sh nicht ausgeführt werden.

Außerdem ist file.sh wahrscheinlich nicht im Verzeichnis, auf dem crontab ausgeführt wird. Sie bevorzugen die Verwendung von /path/to/file.sh

Wenn Sie Ihre Crontab-Ausgabe umleiten, möchten Sie auch stderr abfangen. Nachdem ich sowohl stdout als auch stderr gefangen habe, erinnere ich mich, dass crontab sich nicht mehr über seine Fähigkeit beschwert, den Ausgang weiterzuleiten.

30 * * * * /path/to/file.sh >> /home/john/log.log 2>&1
4
SYN

Ich danke Ihnen allen, mit Ihren Vorschlägen habe ich Fehler gefunden. In crontab habe ich keine vollständigen Pfade verwendet, und das war der Grund.

0
JanezKranjski