então eu tenho visto algo realmente estranho e talvez simples? mas não tão simples que não consegui descobrir. Eu escrevi um script bash simples que eu sou capaz de executar sem problemas normalmente, o problema vem quando eu agendar uma tarefa cron que, em seguida, não executa o meu script.
O script é executável, o script pode ser executado manualmente sem erros / problemas. Eu tentei adicioná-lo ao crontab com o seguinte:
# crontab -l
30 * * * * /usr/scripts/test_script.sh
Eu também tentei adicionar um arquivo em /etc/cron.d/test_script
e tentei especificar o caminho e o shell:
# cat /etc/cron.d/tes_script
PATH=/bin:/usr/bin:/sbin:/usr/sbin
SHELL=/bin/bash
30 * * * * /usr/scripts/test_script.sh
Eu tentei verificar os logs com tailf /var/log/syslog
e vejo o seguinte:
Feb 7 10:53:01 CRON[29203]: (root) CMD (/usr/scripts/test_script.sh)
então parece que pode ser runnign, mas na realidade não é, (ele dispara um processo de atualização que pode ser visto em uma interface web para o programa).
há algo que eu possa estar perdendo? Aqui está o script
#!/bin/bash
DIST="ubuntu"
LOGS="/var/logs/test_script.log"
RECIPIENTS="[email protected]"
declare -a POCKET=("release" "security" "updates")
xenial()
{
SERIES="xenial"
for pocket in "${POCKET[@]}"
do
bzip2 -d "$HOLDER"*.bz2
sync-pocks "$pocket" "$SERIES" "$DIST"
sleep 5m
done
return 0
}
precise()
{
SERIES="precise"
for pocket in "${POCKET[@]}"
do
bzip2 -d "$HOLDER"*.bz2
sync-pocks "$pocket" "$SERIES" "$DIST"
sleep 5m
done
return 0
}
xenial &> "$LOGS" &&
precise &>> "$LOGS" ||
cat "$LOGS" | mailx -s "Sync" "$RECIPIENTS"
Poderia algum problema de sintaxe no script? e se sim, por que ele seria executado sem problemas quando executado manualmente?