Suponho que você tenha adicionado isso como um crontab de seu próprio usuário. O problema é que cron
não tem como se autenticar em sudo
, então ele não pode executar seu comando. A maneira mais simples é adicionar o crontab à conta de root
:
sudo crontab -e
Em seguida, adicione esta linha:
* * * * * mysqldump -h example.com -u username -ppassword dbname | gzip > db.zip
Não há necessidade de um script para algo tão simples, então você pode adicionar o próprio comando. De qualquer maneira, você não quer usar sudo
com isso.
Em resposta à sua edição:
Para descartar várias possíveis complicações, faça com que inreadobase_backup.sh
seja assim:
#!/bin/sh
/usr/bin/mysqldump -h example.com -u username -ppassword dbname | /bin/gzip > /home/maximus/db.zip
Em seguida, para capturar qualquer erro, redirecione a saída de erro do script para um arquivo adicionando 2> file
à sua cron
line:
*/5 * * * * /home/db_backups/inreadobase_backup.sh 2> /tmp/cron.error
Você pode verificar /tmp/cron.error
para mais detalhes.