"stdin: is not a tty" von cronjob

Ich bin immer die folgende E-mail jedes mal, wenn ich die Ausführung eines bestimmten cronjob. Das genannte script läuft wunderbar, wenn ich ' m nannte es unmittelbar und auch aus der cron. Also die Meldung bekomme ich nicht einen tatsächlichen Fehler, da das script genau das tut, was es tun soll.

Hier ist der cron.d-Eintrag:

* *     * * *     root   /bin/bash -l -c "/opt/get.sh > /tmp/file"

und die get.sh Skript selbst:

#!/bin/sh

#group and url
groups="foo"

url="https://somehost.test/get.php?groups=${groups}"

# encryption
pass='bar'
method='aes-256-xts'
pass=$(echo -n $pass | xxd -ps | sed 's/[[:xdigit:]]\{2\}/&/g')

encrypted=$(wget -qO- ${url})
decoded=$(echo -n $encrypted | awk -F '#' '{print $1}')
iv=$(echo $encrypted | awk -F '#' '{print $2}' |base64 --decode | xxd -ps | sed 's/[[:xdigit:]]\{2\}/&/g')

# base64 decode input and save to file
output=$(echo -n $decoded | base64 --decode | openssl enc -${method} -d -nosalt -nopad -K ${pass} -iv ${iv})

if [ ! -z "${output}" ]; then
        echo "${output}"
else
        echo "Error while getting information"
fi

Wenn ich nicht die bash -l syntax der script hängt während der wget-Prozess. Also meine Vermutung wäre, dass es hat etwas zu tun mit wget und setzen die Ausgabe auf stdout. Aber ich habe keine Ahnung wie es zu lösen ist.

Verwenden Sie einen proxy?
Ja ich verwende einen proxy eingestellt werden, über die http_proxy-variable.
Oh, warten Sie, ich denke, wir sind immer hier irgendwo. Ich den proxy über eine Datei in /etc/profile.d Die wird durch /etc/profile. Vielleicht ist diese einfach nicht zur Verfügung steht, die während einer "normalen" cronjob aufrufen?
Stellen Sie sicher, dass die variable gesetzt ist, wenn Ihr bash (root) ist kein login-shell.

InformationsquelleAutor Kai | 2014-10-02

Schreibe einen Kommentar