Script + Crontab = Pau? [RESOLVIDO]

1. Script + Crontab = Pau? [RESOLVIDO]

Sergio Ricardo de Melo
sergio.melo

(usa Debian)

Enviado em 25/03/2010 - 15:43h

Fala pessoal, tudo bom?
Criei o seguinte script:
#!/bin/sh
Script que gera backup de bases de dados PostGreSQL
# Referencia: http://www.htmlstaff.org/postgresqlmanual/app-pgdump.html
#
# VARIAVEIS ##################
vU="postgres" # Usuario no PostGreSQL
vB="GSP" # Base De dados
vBI="/usr/local/PostgreSQL-8.4/bin/" # Diretorio raiz dos binarios do PostGreSQL
vD="/root/backups/bd/postgre/" # Destino do Backup
vPre="pg_bd" # Prefixo no nome do arquivo de saida
vE=".backup" # extensao do arquivo de saida
vH="192.168.90.33" # Host do servidor
vP="5432" #porta do servidor BD
vAno=`date +%Y` #Ano
vMes=`date +%m` #Mes
vDia=`date +%d` #Dia
vHor=`date +%H` #Hora
vMin=`date +%M` #Min
vDat="$vAno$vMes$vDia-$vHor$vMin"
vA=$vPre"-"$vB"-"$vDat$vE
PATH=$PATH:/root
export PATH
echo $PATH
## VALIDACAO ################
if [ -z $vU ]; then
echo "Sem usuario";
exit 0;
fi
if [ -z $vB ]; then
echo "informe o nome da base de dados";
exit 0;
fi
# BACKUP #####################
echo "# Gerando backup. Aguarde..."
echo "# Destino: $vD"
echo "# Nome do arquivo: $vA"
$vBI""pg_dump -i -h $vH -p $vP -U $vU -F c -b -v -f $vD$vA $vB

tar -czf $vA.tar.gz $vD$vA

mv $vA.tar.gz /bkp_paulst001/bd/postgre/testes_2/$vA.tar.gz

Fim do script

Se eu entrar onde ele está e dar o "./nome do arquivo", ele executa normal, cria o arquivo de backup e tudo certo!

Quando o contab faz isso ele até gera um arquivo, mas vazio, tamanho: 0 k

No crontab ficou:
33 15 * * * /root/backups/bd/postgre/dumpBD_gsp.sh

Alguém pode me ajudar a encontrar onde estou errando?



  


2. Re: Script + Crontab = Pau? [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 25/03/2010 - 16:06h

Tente colocar assim no seu crontab:

33 15 * * * root /root/backups/bd/postgre/dumpBD_gsp.sh


3. Re: Script + Crontab = Pau? [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 25/03/2010 - 16:24h

Para te ajudar a entender:

http://www.vivaolinux.com.br/artigo/Usando-cron-e-crontab-para-agendar-tarefas/?pagina=2

Aqui fala cada "campo" que deve ser utilizado no cron

Abraço


4. Re: Script + Crontab = Pau? [RESOLVIDO]

Sergio Ricardo de Melo
sergio.melo

(usa Debian)

Enviado em 25/03/2010 - 16:27h

Amigo, deste jeito (33 15 * * * root /root/backups/bd/postgre/dumpBD_gsp.sh)ele nem gerou o arquivo, não funcionou não.
Mais alguma coisa que eu possa tentar?


5. Re: Script + Crontab = Pau? [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 25/03/2010 - 16:37h

Qual é o caminho completo do executável pg_dump? Coloque o caminho completo dele, pois o crontab não conhece os path's do sistema, tendo q colocar tudo na mão. Ou vc pode, tb, colocar as variáveis dentro do crontab antes das regras, tipo:

PATH=/bin:/usr/bin/sbin:/usr/sbin

33 15 * * * /root/backups/bd/postgre/dumpBD_gsp.sh
00 11 * * * /usr/bin/echo $USER <-- exemplo


6. Re: Script + Crontab = Pau? [RESOLVIDO]

Sergio Ricardo de Melo
sergio.melo

(usa Debian)

Enviado em 25/03/2010 - 17:39h

Meu amigo, fiz conforme você me orientou.
Para me certificar rodei o "# echo $PATH" e inseri no crontab mas não foi.
Quanto ao caminho do pg_dump está correto, tanto que ele executa manualente.


7. Re: Script + Crontab = Pau? [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 26/03/2010 - 08:21h

Hum... eu tava com um problema desses, saca? Ae eu comecei a olhar os logs do cron pra descobrir. Faça assim: deixe a regra rodar d minuto em minuto, assim:

*/1 * * * * /root/backups/bd/postgre/dumpBD_gsp.sh

Deixe rodando e abra o seu arquivo d log:

# tail -f /var/log/cron

E veja qual é a msg q aparece quando roda o comando.


8. Re: Script + Crontab = Pau? [RESOLVIDO]

Sergio Ricardo de Melo
sergio.melo

(usa Debian)

Enviado em 26/03/2010 - 08:57h

Bom dia,
coloquei ele para rodar de minuto em minuto como você pediu, e até aí beleza, mas ele não gerou nenhum arquivo de log no /var/log/cron.
Colocando ele para gerar log manualmete, ou seja, adicionando: > /root/backups/bd/postgre/processo_log.txt, no script ele gera um arquivo vazio também, assim como o arquivo de backup, o que faço?


9. Re: Script + Crontab = Pau? [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 26/03/2010 - 09:53h

Uma pergunta [*****], mas o seu crond tá rodando?

# ps aux | grep crond


10. Re: Script + Crontab = Pau? [RESOLVIDO]

Sergio Ricardo de Melo
sergio.melo

(usa Debian)

Enviado em 26/03/2010 - 10:04h

Com o comando que você me enviou retornou:
root 3062 0.0 0.0 2872 760 pts/2 S+ 09:54 0:00 grep crond




11. Re: Script + Crontab = Pau? [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 26/03/2010 - 10:32h

Era só pra garantir... bom, vc já tentou colocar essas variáveis dentro do crontab?

SHELL=/bin/bash
MAILTO=root

Acredito q o cron não esteja detectando os executáveis.


12. Re: Script + Crontab = Pau? [RESOLVIDO]

Leonardo Vinicius Dias da Silva
leomarie

(usa Slackware)

Enviado em 26/03/2010 - 10:45h

Velho.. tenta colocar os paths completos dos comandos, tipo o tar e o mv no script..
#which mv
#which tar

pega o caminho retornado nestes comandos e coloca no script, assim ao menos vc elimina o possível erro de PATH.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts