Você tem configurações de caminho diferentes quando executado pelo cron, portanto, sempre use caminhos absolutos em scripts ou serviços cron.
Oi pessoal Estou enfrentando uma situação estranha e eu procurei e não encontrei nada. Eu tenho um script que pega uma data e adiciona 72 horas a ela. Não há problema quando eu o executo a partir do terminal, mas quando ele é executado pelo cronjob, isso me causa um erro:
if [ $# -eq 3 ] ; then
# ----------
# PARAMETERS
# ----------
start_YYYYMMDDHH=${1}
ini_YYYYMMDDHH=${2}
flen=${3}
ini_HH=${ini_YYYYMMDDHH:8:2}
start_YYYY=${start_YYYYMMDDHH:0:4}
start_MM=${start_YYYYMMDDHH:4:2}
start_DD=${start_YYYYMMDDHH:6:2}
start_HH=${start_YYYYMMDDHH:8:2}
start_II=00
start_SS=00
end_YYYYMMDDHH='date --utc +%Y%m%d%H%i%s -d "${start_YYYY}-${start_MM}-${start_DD} ${start_HH}:${start_II}:${start_SS} UTC +${flen} hours"'
end_YYYYMMDDHH=${end_YYYYMMDDHH:0:10}
end_YYYY=${end_YYYYMMDDHH:0:4}
end_MM=${end_YYYYMMDDHH:4:2}
end_DD=${end_YYYYMMDDHH:6:2}
end_HH=${end_YYYYMMDDHH:8:2}
end_II=00
end_SS=00
e quando eu o executo pelo cron, isso me dá esse erro:
date: extra operand ‘-d’ Try 'date --help' for more information.
você tem alguma idéia do porquê isso está acontecendo? obrigado
Você tem configurações de caminho diferentes quando executado pelo cron, portanto, sempre use caminhos absolutos em scripts ou serviços cron.
end_YYYYMMDDHH=$(date --date="${start_YYYY}-${start_MM}-${start_DD} ${start_HH}:${start_II}:${start_SS} UTC +${flen} hours" -u "+%Y%m%d%H")
funciona corretamente, mas por algum motivo, se você mover esta parte: -u "+%Y%m%d%H"
para o início do comando, ele deu esse erro!
o mais estranho é que o mesmo comando funciona em outra máquina! btw espero que isso ajude quem enfrentou este problema
Tags bash ubuntu shell-script