Cron-Job läuft nicht / bin / bash: Benutzer: Befehl nicht gefunden

664
risail

Ich versuche, einen cron-Job auszuführen, der ein Skript als Benutzer ausführt, der crontab -e auf dem Ubuntu-Server 16.04 LTS verwendet. Das Skript befindet sich in /data/autoremove.sh:

! / usr / bin / env bash

wenn ping -q -c 1 -W 1 1.1.1.1> / dev / null; dann scp / data / data * user@1.1.1.1: / data && rm data * Sonst echo "funktioniert nicht" fi

und der Cron-Job wird mit dem Benutzer "Benutzer" konfiguriert:

*/1 * * * * /data/autoremove.sh>/dev/null 2> ~/cron.err.

Ich habe versucht, der Crontab und dem Skript sowohl a SHELL=/bin/bashals auch a hinzuzufügen. Ich habe PATH=bestätigt, dass cron ausgeführt wird, und habe versucht, es auszuführen, ohne einen Benutzer zu deklarieren. Das Skript funktioniert, wenn es entweder als Root oder als Besitzer ausgeführt wird

Der Fehler, den ich erhalte, ist, dass /bin/bash: user: command not found' ich mehrere Artikel auf den verschiedenen Stackseiten durchgelesen habe und kein Glück hatte, dass dies funktioniert.

0
Warum denken Sie, dass Sie den Benutzer so angeben, dass er ausgeführt werden soll? Ignacio Vazquez-Abrams vor 6 Jahren 0
@Ignacio Vazquez-Abrams, weil dies im Handbuch heißt: https://help.ubuntu.com/community/CronHowto ... glaube nicht, dass ich verstehe, worauf Sie sich einlassen. risail vor 6 Jahren 0
Wenn Sie Benutzer cron verwenden, sollten Sie nicht "user" angeben, es wird nur auf System cron angewendet. Andere Dinge - Verwenden Sie überall volle Pfade Alex vor 6 Jahren 0
Fehler in der ersten Zeile: Ersetzen Sie ihn in `#! / Bin / bash 'anstelle von`! / Usr / bin / env bash' Alex vor 6 Jahren 0
`~ / autoremove.sh` befindet sich in Ihrem Home-Verzeichnis, während` / data / autoremove.sh` sich im Verzeichnis `/ data` befindet Alex vor 6 Jahren 0
"Hier ist eine Beispielzeile aus einer fiktiven ** / etc / crontab **:" Aber Sie bearbeiten nicht `/ etc / crontab`, Sie verwenden` crontab -e '. Ignacio Vazquez-Abrams vor 6 Jahren 0
Wenn ich sie nach / etc / crontab verschiebe und den Benutzer deklariere oder wenn ich den Benutzer entferne und ihn in crontab -e eingebe, -e, sind die Ergebnisse die gleichen, dass er die Datei nicht finden kann risail vor 6 Jahren 0
Haben Sie versucht, was ich Ihnen empfohlen habe - "überall Pfade verwenden"? Alex vor 6 Jahren 0
Ja habe es @Alex versucht risail vor 6 Jahren 0
Sogar für "ping", "scp", "rm" ??? Alex vor 6 Jahren 0

0 Antworten auf die Frage