Cron emite mensagem bin/sh: root: not found

editado March de 2011 em Programação e Scripts
Tenho alguns scripts agendados com o cron. A máquina está configurada para enviar email em caso de falha de algum comando. Eis um email que venho recebendo com frequencia:
----------------------------------
Subject:Cron <[email protected]> root /home/acmlima/scripts/bash/bkp-mysql.bash
Body: /bin/sh: root: not found
----------------------------------

Fui analisar o conteudo do script e nao vi nenhuma chamada para /bin/sh, aliás coloquei /bin/bash.
O script executa normalmente, só não entendi esta mensagem que recebo.

----------------
script
----------------
#!/bin/bash
# definicao das variaveis
diretorio="/home/acmlima/bkp_mysql/"
arquivo="bkp_mysql.sql.gz"
email="[email protected]"
msg=""
log="/home/acmlima/scripts/bash/log_bkp_mysql.txt"
echo Resultado do script $0 > $log - $(date)
# comando do backup
mysqldump --opt --all-databases -u acmlima -psenha 2>> $log | gzip > $diretorio$arquivo;

# verifica se houve algum erro durante a execucao do comando acima
if [ $? -ne 0 ]
then
subject="---------->>[Erro]"
msg=" na geracao do backup MySQL<<----------"
fi

if [ "$msg" == "" ]
then
subject="---------->>[Sucesso]"
msg=" Backup realizado!<<----------"
fi

echo $subject $msg >> $log;
# ---------------FIM DO SCRIPT--------------------

O sh está instalado, o comando whereis sh retornou:
sh: /bin/sh.distrib /bin/sh /usr/share/man/man1/sh.1.gz

O trecho do meu crontab é esse:
# m h dom mon dow command
# realiza o backup das bases do MySQL
00 22 * * * /home/acmlima/scripts/bash/bkp-mysql.bash
# ---FIM DO CRONTAB ---

Alguém tem ideia do que possa ser?

Pesquisando mais, vi que havia 2 arquivos criados criados em "/var/spool/cron/crontabs" acmlima e root.Estes são exatamente os arquivos editados por "crontab -e". Um deles, o root, deve ter uma entrada inválida em alguma coluna
# /var/spool/cron/crontabs/root
32 12 * * * root /home/acmlima/scripts/bash/bkp-mysql.bash

As colunas do crontab pessoal são diferentes das do root?

Bem, removi este arquivo que não estava usando. Vamos aguardar para ver se não ocorre mais a mensagem de erro.

Comentários

  • arleiarlei Arlei
    editado March de 2011
    Olá acmlima.

    Pois é, observando sua entrada na crontab não me parece ter erro algum.

    Pergunto, você programou para rodar esse script a partir da crontab do sistema ou sua pessoal?

    Sobre o shell sh, ele é padrão a qualquer sistema embora a grande maioria das distribuições usem o bash como default. E por isso, também o shell padrão da crontab, e isso você observa ou pode editar no arquivo de configuração em /etc/crontab.

    Em alguma linha do arquivo deve ter algo como: SHELL=/bin/sh

    T+
    Arlei
Entre ou Registre-se para fazer um comentário.