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