Der tägliche Cron-Job scheint nicht zu funktionieren

Der tägliche Cron-Job scheint nicht zu funktionieren

Ich habe einen Cron-Job, der jeden Tag um 2 Uhr morgens ein Shell-Skript auslösen soll.

0 2 * * * /root/bin/script.sh

Es funktioniert jedoch überhaupt nicht. Was übersehe ich?

Weitere Einzelheiten: Das Skript läuft bei manueller Ausführung ohne Cron-Planung einwandfrei und tut, was es tun soll. Der Root-Benutzer führt den Cron-Job aus. Der Cron-Job wurde von crontab -eeinem rootBenutzer geplant. pgrep crongibt eine Service-ID an, die bedeutet, dass der Cron-Dienst ausgeführt wird. Im Folgenden finden Sie den Inhalt der /root/bin/script.shDatei:

BACKUP_LOG=/var/log/backup.log
exec 1> >(while IFS= read -r line; do echo "$(date --rfc-3339 ns) $line"; done | tee -a ${BACKUP_LOG}) 2>&1

# Back up the etc directory
mkdir /home/directory1/backup/etc_backup
cp -Lrp /etc /home/data/backup/etc_backup
tar czf /home/data/backup/etc_backup.tgz
/home/data/backup/etc_backup
rm -rf /home/data/backup/etc_backup

Eigentlich habe ich das Skript von /etc/cron.daily/nach verschoben /root/bin. Soll das Skript /etc/cron.dailynur für die tägliche Ausführung in sein?

Antwort1

Ich vermute, dass Ihr Skript von der Shell nicht richtig verstanden wird, weil es keinen richtigen Shebang hat. Versuchen Sie es crontab -estattdessen mit Folgendem:

0 2 * * * bash /root/bin/script.sh > /tmp/crontest.log 2>&1

Wenn Sie das Skript direkt mit Bash aufrufen, sollte es jetzt einwandfrei laufen. Alle Ausgaben sollten ebenfalls protokolliert werden /tmp/crontest.log, was bei der Fehlersuche helfen kann, falls es immer noch nicht funktioniert.

verwandte Informationen