Fórum Ubuntu Linux - PT
Suporte Técnico => Sistema => Tópico iniciado por: ubu4ever em 10 de Junho de 2013, 21:44
-
Pessoal,
Tentei adicionar dois scripts no cron para serem executados diariamente e mensalmente, respectivamente, mas o cron exibe o erro:
Jun 10 16:48:01 NETUBU CRON[20777]: (root) CMD (sudo bash /home/user/BackupArquivos.sh)
Jun 10 16:48:01 NETUBU CRON[20776]: (CRON) info (No MTA installed, discarding output)
Scripts no cron
sudo crontab -e
...
0 12 * * * sudo bash /home/user/BackupArquivos.sh
30 12 1 * * sudo bash /home/user/BackupSistema.sh
Fora do cron os 2 scripts rodam sem retornar nenhum erro.
-
Encontrei uma solução. Não é a "politicamente correta" mas serviu. O correto seria criar os trabalhos via sudo crontab -e e adicionar o conteúdo ao arquivo.
Editei o arquivo /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
0 12 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
15 12 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
30 12 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
# COMANDOS PERSONALIZADOS
0 12 * * * root (cd /home/user/ && ./BackupArquivos.sh >>Script.log 2>&1)
30 12 1 * * root (cd /home/user/ && ./BackupSistema.sh >>Script.log 2>&1)
-
Oi, vc entendeu pq não funcionou da primeira vez, não? O comando "sudo" não pode ser executado fora do terminal...
A solução que vc adotou realmente não é a melhor, mas está bem longe de ser a pior.
-
Oi, vc entendeu pq não funcionou da primeira vez, não? O comando "sudo" não pode ser executado fora do terminal...
A solução que vc adotou realmente não é a melhor, mas está bem longe de ser a pior.
Vi tutoriais onde foi ensinado usar o comando sudo, porém para executador comandos dentro do crontab e não scripts, como no meu caso.
Além disso é necessário adicionar o SHELL e o PATH no arquivo para executar scripts no crontab. No arquivo /etc/crontab já existem essas linhas!
sudo crontab -e
...
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow command
0 10 * * * (cd /home/user/ && ./BackupArquivos.sh >>Cron.log 2>&1)
30 10 1 * * (cd /home/user/ && ./BackupSistema.sh >>Cron.log 2>&1)
Agora sim o crontab está funcionando.