-
Para obter o arquivo de log onde você espera, substitua:
LOG_FILE="test-crontab.log"
Com:
LOG_FILE="/home/ubuntu/sam/scripts/sqlplus-scripts/accts-ct/test-crontab.log"
-
O comando
[[ ${?} != 0 ]]
é somente bash. Na mensagem de erro que você cita, o script parece estar sendo executado em/bin/sh
. Uma maneira de corrigir isso é substituir:if [[ ${?} != 0 ]]; then
Com:
if [ ${?} != 0 ]; then
Outra abordagem é executar
crontab -e
e adicionar a seguinte linha ao seu arquivocrontab
:SHELL=/bin/bash
-
Além disso, para simplicidade e estilo, considere substituir:
echo 'date' >> ${LOG_FILE}
com:
date >> "${LOG_FILE}"
Isso elimina o uso inútil do eco.
-
Por último, considere colocar aspas duplas em torno de todas as variáveis do shell, particularmente
$LOG_FILE
. Como o valor atual deLOG_FILE
não contém espaços ou caracteres ativos em shell, isso não é necessário agora. Porém, colocar aspas duplas em torno deles evitará surpresas desagradáveis no futuro.