"getpwnam() fehlgeschlagen" /bin/sh nur bei Aufruf aus cron

Hier der Inhalt meiner crontab-Datei:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO="[email protected]"

*/5 * * * * sh /robot/1/master.sh >/dev/null 2>&1
*/5 * * * * sh /robot/2/master.sh >/dev/null 2>&1
*/5 * * * * sh /robot/3/master.sh
*/5 * * * * sh /robot/4/master.sh >/dev/null 2>&1
*/5 * * * * sh /robot/5/master.sh >/dev/null 2>&1

Dies ist der Fehler, der zeigt in /var/log/cron wenn er versucht zu laufen:

crond[669]: (sh) ERROR (getpwnam() failed)

Wenn ich diese Dateien manuell funktionieren Sie ohne Probleme.

Was falsch mit der crontab-Datei?

  • Beiseite: sh ist nicht bash (auch wenn es ein symbolischer Link auf die bash, es arbeitet im Kompatibilität-Modus, drehen der zahlreichen Merkmale). Nicht tag Ihre Fragen bash, wenn Sie eigentlich nicht auf die bash benutzen.
  • Sind Sie versuchen, führen Sie den cron jede halbe minute oder alle 5 Minuten? Das */5 bedeutet, dass es jede minute ausgeführt mit Schritt 5.
  • jedenfalls getpwnam() failed ist ziemlich einfach, im Allgemeinen. Was ist Ihr system Verzeichnis service/store? Wenn es konfiguriert ist, etwas zu reden, dass die Kerberos-Authentifizierung erfordert, zum Beispiel, dann ist dein cron-jobs können nicht über einen gültigen Fahrausweis verfügen.
  • ...ist zu sagen: Das problem tatsächlich nicht auf mit Ihrer crontab-Datei, aber es hat zu tun mit, wie Sie Ihr system Verzeichnis service-das bietet die Informationen, die getpwnam() Abfragen für -- konfiguriert ist. Das wird bedeuten, Graben um in Ihrer system-config ein bisschen.
  • bedeutet, es laufen werde alle 5 Minuten.
  • Suchen in es jetzt, danke!
  • Übrigens, ich kann nicht sprechen für was auch immer /bin/sh Sie geschehen zu sein mit, aber bash wird erholen würdevoll von einem getpwnam Fehler (err, gewissermaßen anmutig; es wird vorausgesetzt, dass ein Benutzer namens I have no name!, hat ein home-Verzeichnis von /, und hat eine Standard-shell /bin/sh). Sie könnten versuchen, Einstellung SHELL=bash in deiner crontab, und mit bash statt sh ausdrücklich.

InformationsquelleAutor Andrew | 2017-01-25
Schreibe einen Kommentar