我每次執行一個特定的cronjob時候,我發現了以下郵件。被調用的腳本運行良好時,我直接調用它,甚至從cron。所以我得到的消息不是一個實際的錯誤,因爲腳本完全按照它應該做的事情做。「標準輸入:是不是tty」從的cronjob
這裏是cron.d項:
* * * * * root /bin/bash -l -c "/opt/get.sh > /tmp/file"
和get.sh腳本本身:
#!/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
當我不使用bash -l
語法期間wget的過程腳本掛起。所以我的猜測是它與wget有關,並將輸出放到標準輸出中。但我不知道如何解決它。
你使用代理? – Cyrus 2014-10-02 09:18:00
是我使用代理服務器通過HTTP_PROXY變量設置。 – Kai 2014-10-02 09:18:47
哦,等等,我認爲,我們正在這裏的某個地方。我通過它獲得通過/ etc/profile文件包含在/etc/profile.d中文件中設置代理。也許這只是在「正常」cronjob調用期間不可用? – Kai 2014-10-02 09:23:42