O trabalho cron diário não parece funcionar

1

Eu tenho um cron job para acionar um script de shell diariamente às 2 da manhã.

0 2 * * * /root/bin/script.sh

No entanto, não funciona de todo. O que estou perdendo?

Mais detalhes: O script é executado sem cron agendamento quando executado manualmente e faz o que é suposto fazer. O usuário root está executando o cron job. A tarefa agendada foi agendada por crontab -e as root user. pgrep cron fornece um ID de serviço, o que significa que o serviço cron está sendo executado. A seguir estão os conteúdos do arquivo /root/bin/script.sh :

BACKUP_LOG=/var/log/backup.log
exec 1> >(while IFS= read -r line; do echo "$(date --rfc-3339 ns) $line"; done | tee -a ${BACKUP_LOG}) 2>&1

# Back up the etc directory
mkdir /home/directory1/backup/etc_backup
cp -Lrp /etc /home/data/backup/etc_backup
tar czf /home/data/backup/etc_backup.tgz
/home/data/backup/etc_backup
rm -rf /home/data/backup/etc_backup

Na verdade, movi o script de /etc/cron.daily/ para /root/bin . O script deveria estar em /etc/cron.daily apenas para execução diária?

    
por hasnain rehman 04.11.2016 / 13:50

1 resposta

3

Meu palpite é que o seu script não está sendo entendido corretamente pelo shell, porque ele não possui um shebang adequado. Tente usar crontab -e com isso:

0 2 * * * bash /root/bin/script.sh > /tmp/crontest.log 2>&1

Invocando o script diretamente usando o bash, o script deve rodar bem agora. Qualquer saída deve ser registrada em /tmp/crontest.log , o que pode ajudar um pouco na depuração se ainda não funcionar.

    
por 04.11.2016 / 14:29

Tags