Adicionando #!/bin/bash
fez a coisa, eu esqueci de adicionar essa linha. Realmente não é possível dizer por que ele não funciona no shell, mas de alguma forma ele agora funciona dentro do script e dentro do cronjob. Obrigado pelos comentários.
Estou usando um servidor Debian 7. Eu criei um script de shell para ser executado pelo crontab para salvar um mysqldump todos os dias.
mysqldump *database* -u *mysql-user* -p*mysql-password* > /backup/mysql_backup/*filename*.sql
Se digitado diretamente na linha de comando, tudo funciona bem. Mas se eu executar o script de shell em si (./backup.sh), não receberei nenhum arquivo resultante, mas nenhum erro. A pasta hat rights 777, o shell script é executável. Eu nem tentei colocar o script no crontab, quando o script nem funciona na linha de comando.
Alguém sabe o que fazer?
Adicionando #!/bin/bash
fez a coisa, eu esqueci de adicionar essa linha. Realmente não é possível dizer por que ele não funciona no shell, mas de alguma forma ele agora funciona dentro do script e dentro do cronjob. Obrigado pelos comentários.
tenha em mente que o crontab não possui as mesmas variáveis de ambiente que você faz quando está logado em um shell bash, mais notadamente $ PATH, então use o hábito de usar caminhos CHULLOS para comandos onde o crontab está envolvido
/usr/bin/mysqldump > /full/path/backup/
Tags mysql io-redirection