Na verdade esse script eu fiz no Debian, e lá funciona direitinho. a linha: PATH=$PATH
No Debian funciona pois esta definida nas variareis de ambiente. Confesso que o uso do 'which' facilita bastante, pelo menos no Debian :) Valeu a dica de todos, vou testar e já retorno. Agradecido! 2011/5/18 Luiz Otavio O Souza <lists...@gmail.com> > On May 18, 2011, at 10:14 AM, Diego Paludo wrote: > > > Bom dia senhores e senhoras :) > > > > Estou agendando no cron de um determinado usuario (crontab -e) um > > scriptzinho bash para fazer backup (dump) do mysql, porém ao executar tal > > script ele acusa erro na linha 28 do script: > > > > "line 28: -u: command not found" > > > > Mas se eu executar "na mão" o mesmo script não dá erro e faz tudo o que > foi > > determinado no script. > > > > Como já falaram, problemas com o seu script... > > Dentro do /etc/crontab você tem o PATH definido como: > > # /etc/crontab - root's crontab for FreeBSD > # > # $FreeBSD: head/etc/crontab 194170 2009-06-14 06:37:19Z brian $ > # > SHELL=/bin/sh > PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin > > > Ou seja, nada dentro do /usr/local > > > Veja só: > > > > Linha no "crontab -e": > > 00 23 * * * /home/dbbkp/mysql_bkp.sh > > > > Segue o script: > > > > #!/usr/local/bin/bash > > PATH=$PATH > > Se você quer escrever um script portável (escreva no FreeBSD e ele vai > funcionar no Linux), utilize o /bin/sh e evite o bash. > > PATH = $PATH também não ajuda muito (isso não faz nada, certo ?) :| > > > > > # Binarios > > DUMP=`which mysqldump` > > SQL=`which mysql` > > ZIP=`which gzip` > > O problema esta aqui, ao invés de usar o 'which' especifique o caminho > completo dos utilitários, isso dá algum trabalho na hora de criar o script, > mas poupa você de muita dor de cabeça mais tarde. > > > > > # Destino do backup > > BACKUP_DIR="/home/dbbkp/mysql_backup" > > > > # Acesso ao MySQL > > USER="dbbkp" > > PASS="*******" > > > > # Lista todos os bancos de dados > > DB_LIST=`$SQL -u $USER -p$PASS -Bse 'show databases'` >>>>>> essa é linha > > 28, onde da erro executando via cron > > > > De acordo com o erro: > > > "line 28: -u: command not found" > > Podemos imaginar que a variável $SQL não foi devidamente substituída pelo > valor que você imaginava e acabou ficando em branco. > > > > > # Lista de bancos de dados ignorados > > IGNORE="information_schema test" > > > > TIME=`date +%F` > > > > for db in $DB_LIST; do > > skipdb=-1 > > > > for i in $IGNORE; do > > [ "$db" == "$i" ] && skipdb=1 || : > > done > > > > if [ "$skipdb" == "-1" ]; then > > $DUMP -u $USER -p$PASS $db | $ZIP -9 > > > $BACKUP_DIR/$db.$TIME.sql.gz > > fi > > done > > > > # Remove arquivos com mais de 8 dias de criacao > > find $BACKUP_DIR/* -mtime 8 -exec rm {} \; > > > > exit 0 > > # EOF > > > > > > Agradecido!! > > Diego > > Não por isso... > > Boa sorte, > Luiz > > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd