Crontab funcionando mas root crontab não

1

Oi pessoal, eu tento rodar meu roteiro as 23:55 de todos os dias. Este é o meu código:

# m h  dom mon dow   command
  PATH=/usr/sbin:/sbin:/usr/bin:/bin

  55 23 * * * bash -l /home/as/bin/backupAutoEtc.sh

E isso funciona bem em crontab -e , mas não funciona se eu colocar em sudo crontab -e .
Eu tenho uma linha vazia no final do arquivo (eu também tentei sem o bash -l ). O arquivo de log é o mesmo para root crontab e normal crontab (sem erros), então eu não entendo porque o primeiro funciona e o último não. Eu já li muitas respostas sobre o tópico, mas nenhuma funcionou para mim. Você tem alguma ideia?

Obrigado antecipadamente

PS O script é o seguinte (um backup diário simples do diretório / etc):

#!/bin/bash
dayOfTheWeek=$(date +%u)
nomeFile=backupEtc${dayOfTheWeek}.tar.gz
tar -czvf ~/${nomeFile} /etc
    
por Marco Cadei 07.10.2017 / 16:41

1 resposta

0

Você pode colocar sudo no crontab. Assim:

55 23 * * * sudo /home/as/bin/backupAutoEtc.sh

Mas o script precisa ser adicionado ao sudoers como uma exceção, portanto, o cron pode executá-lo sem solicitar a senha do root. Para fazer isso, caso você não saiba:

sudo visudo -f /etc/sudoers.d/rewrite

Dentro use esta linha:

user ALL = NOPASSWD: /home/as/bin/backupAutoEtc.sh

Use seu próprio nome de usuário em vez de usuário. Problema resolvido!

    
por user633551 07.10.2017 / 18:05