Agendando script no crontab [RESOLVIDO]

1. Agendando script no crontab [RESOLVIDO]

Luiz Querino de Sousa Neto
luizquerino

(usa CentOS)

Enviado em 18/06/2012 - 12:04h

Bom dia galera meu primeiro tópico no VOL espero que alguém me ajude , estou com o seguinte problema estou com um script de backup e quero agenda-lo pelo crontab,ate ai esta tudo ok, só que depois de agendado o script não funciona !!

Estou usando o script full desse forum:

http://www.vivaolinux.com.br/artigo/Script-de-backup-full-+-diferencial-+-compactador-+-restauracao?...



  


2. Re: Agendando script no crontab [RESOLVIDO]

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 18/06/2012 - 13:26h

assim
de uma lida

http://www.devin.com.br/crontab

espero que ajude


3. Re: Agendando script no crontab [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/06/2012 - 13:56h

Já ouviu falar em backup-manager?

Curte ai. Ele já cria suas entradas no cron.

http://www.vivaolinux.com.br/etc/backupmanagerconf


4. Re: Agendando script no crontab [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 19/06/2012 - 00:25h

Agende em um horário para teste, depois veja o conteúdo de /var/log/syslog


tail /var/log/syslog

Nele você vai encontrar o log do cron, sempre me ajudou ;-)


5. Permissão

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 19/06/2012 - 01:45h

Você executou chmod +x /pasta/backup.sh

Vi que ele fala sobre isso mais não mostra como dar a permissão.


6. Re: Agendando script no crontab [RESOLVIDO]

Luiz Querino de Sousa Neto
luizquerino

(usa CentOS)

Enviado em 19/06/2012 - 08:47h

rai3mb escreveu:

Agende em um horário para teste, depois veja o conteúdo de /var/log/syslog


tail /var/log/syslog

Nele você vai encontrar o log do cron, sempre me ajudou ;-)




Bom dia, vlw pela dica mais ja agendei e verifiquei as logs e ele esta funcionando então deve ser o script só não estou achando o problema :/

Segue o script:
echo "Programa de backup full"
echo " "

dadosfull() {

SRCDIR="/etc" #diretórios que serão feito backup
DSTDIR=/backup/ #diretório de destino do backup
DATA=`date +%x-%k%M%S` #pega data atual
TIME_BKCP=+07 #número de dias em que será deletado o arquivo de backup

#criar o arquivo full-data.tar no diretório de destino
ARQ=$DSTDIR/full-$DATA.tar.gz
#data de inicio backup
DATAIN=`date +%c`
echo "Data de inicio: $DATAIN"

}

backupfull(){
sync
tar -czvf $ARQ $SRCDIR
if [ $? -eq 0 ] ; then
echo "----------------------------------------"
echo "Backup Full concluído com Sucesso"
DATAFIN=`date +%c`
echo "Data de termino: $DATAFIN"
echo "Backup realizado com sucesso" >> /var/log/backup_full.log
echo "Criado pelo usuário: $USER" >> /var/log/backup_full.log
echo "INICIO: $DATAIN" >> /var/log/backup_full.log
echo "FIM: $DATAFIN" >> /var/log/backup_full.log
echo "-----------------------------------------" >> /var/log/backup_full.log
echo " "
echo "Log gerado em /var/log/backup_full.log"

else
echo "ERRO! Backup do dia $DATAIN" >> /var/log/backup_full.log
fi
}

procuraedestroifull(){

#apagando arquivos mais antigos (a mais de 20 dias que existe)
find $DSTDIR -name "f*" -ctime $TIME_BKCP -exec rm -f {} ";"
if [ $? -eq 0 ] ; then
echo "Arquivo de backup mais antigo eliminado com sucesso!"
else
echo "Erro durante a busca e destruição do backup antigo!"
fi
}

dadosfull
backupfull
procuraedestroifull

exit 0




7. permissão

Luiz Querino de Sousa Neto
luizquerino

(usa CentOS)

Enviado em 19/06/2012 - 08:58h

andrecanhadas escreveu:

Você executou chmod +x /pasta/backup.sh

Vi que ele fala sobre isso mais não mostra como dar a permissão.




Ja dei permição para o script !!!


8. Re: Agendando script no crontab [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 19/06/2012 - 09:32h

Prerigro:


DATA=`date +%x-%k%M%S` #pega data atual
...
ARQ=$DSTDIR/full-$DATA.tar.gz


Observe que DATA ficará com algo como: 06/19/2012- 92259
E você usa isso pra criar um arquivo, 2 grandes problemas:

1 - espaço no conteúdo da variável, e depois não está sendo usado aspas duplas pra garantir que esse espaço será usado e não interpretado.

2 - barras no conteúdo da variável e posterior uso para criar um arquivo. Observe que no GNU/Linux a barra é usada para a estrutura de diretórios, observe o problema:

DATA=$(date +%x-%k%M%S)
ARQ=teste-$DATA.tar.gz
echo $ARQ
teste-06/19/2012- 92838.tar.gz
touch "$ARQ"
touch: cannot touch `teste-06/19/2012- 92838.tar.gz': No such file or directory

Veja que não existe o diretório teste-06, nem o 06, ntem o 19, etc...


Prefira:


DATA=$(date +%Y%m%d) #pega data atual
...
ARQ=$DSTDIR/full-$DATA.tar.gz


Veja que alterei a DATA para não conter espaços e nem a barra.

Faça alguns testes e veja se funciona.





9. Re: Agendando script no crontab [RESOLVIDO]

Luiz Querino de Sousa Neto
luizquerino

(usa CentOS)

Enviado em 19/06/2012 - 09:44h

rai3mb escreveu:

Prerigro:


DATA=`date +%x-%k%M%S` #pega data atual
...
ARQ=$DSTDIR/full-$DATA.tar.gz


Observe que DATA ficará com algo como: 06/19/2012- 92259
E você usa isso pra criar um arquivo, 2 grandes problemas:

1 - espaço no conteúdo da variável, e depois não está sendo usado aspas duplas pra garantir que esse espaço será usado e não interpretado.

2 - barras no conteúdo da variável e posterior uso para criar um arquivo. Observe que no GNU/Linux a barra é usada para a estrutura de diretórios, observe o problema:

DATA=$(date +%x-%k%M%S)
ARQ=teste-$DATA.tar.gz
echo $ARQ
teste-06/19/2012- 92838.tar.gz
touch "$ARQ"
touch: cannot touch `teste-06/19/2012- 92838.tar.gz': No such file or directory

Veja que não existe o diretório teste-06, nem o 06, ntem o 19, etc...


Prefira:


DATA=$(date +%Y%m%d) #pega data atual
...
ARQ=$DSTDIR/full-$DATA.tar.gz


Veja que alterei a DATA para não conter espaços e nem a barra.

Faça alguns testes e veja se funciona.





rai3mb muito obrigado era isso mesmo funcionou perfeitamente e melhor ainda obrigado !!!








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts