[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rsync + Crontab



Caros colegas da lista agradeço a ajuda de todos, e felizmente consegui solucionar o meu contratempo, passarei a vocês oque foi feito:

Primeiro como nossa colega Camila disse, eu deveria fazer um teste com o script manualmente para ver se eu conseguia fazer a sincronização e realmente este teste solicitou senha, chegando a conclusão de que as chaves geradas no ssh estavam erradas então as gerei novamente da seguinte forma:

# ssh-keygen -t dsa -f ~/.ssh/id_dsa

# cat ~/.ssh/id_dsa.pub | ssh root@maquina_remota 'cat - >> ~/.ssh/authorized_keys'

# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

Feito isso alterei o script que havia criado colocando a nova informação nele:

#!/bin/bash
 
INICIO=`date +%d/%m/%Y-%H:%M:%S`
LOG=/home/usuario/log/`date +%Y-%m-%d`_rsync-log.txt
 
echo " " >> $LOG
echo " " >> $LOG
echo "| ------ ------ ------ ------ ------ ------ -----------"  >> $LOG
echo "  Sincronizacao iniciada em $INICIO" >> $LOG
 
rsync -Cravzp root@servidorA:/media/pasta/ /media/pasta >> $LOG
FINAL=`date +%d/%m/%Y-%H:%M:%S`
 
echo "  Sincronizacao Finalizada em $FINAL" >> $LOG
echo "| ------ ------ ------ ------ ------ ------ -----------"  >> $LOG
echo " " >> $LOG
echo " " >> $LOG

para ter certeza desta vez fiz um teste manual:

#sh ./rsync.sh

Certo funcionou correctamente então fui ao grande final que era configurar o crontab par a que o mesmo passasse a fazer a sincronização diariamente e no determinado horário estabelecido desta forma fiz o seguinte:

#nano /etc/crontab

Arquivo:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/

sbin:/usr/bin

# m h dom mon dow user    command
17 *    * * *    root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

10 15  * * *     root     sh /home/usuario/rsync.sh
#
Feito isso tudo funcionou correctamente, espero que com minha duvida outras pessoas possam se beneficiar também.
Mais uma vez agradeço a ajuda de todos.
tenha uma boa semana.



Em 21 de junho de 2011 16:41, Rafael No <rafael.saxon@gmail.com> escreveu:
Boa tarde caros amigos da lista,
primeiramente venho agradecer a todos pela ajuda.
Então vamos la.

1- Samuka Smk:
Rodei o comando via shell e funcionou normalmente.
Com relação a edição do arquivo /etc/rsyncd.conf, não consegui localizar na pasta etc. Eu deveria criar-lo ou este arquivo deveria ser criado por padrão com a instalação do rsync?
Com relação a rodar este script na mão eu consigo jogando o comando:
#sh ./rsync.sh
OBS: Ao executar o arquivo o mesmo solicita senha, mais executa a syncronização dos arquivos.

2- Welington Rodrigues Braga
Conforme me foi solicitado alterei a configuração do me /etc/crontab para:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root    cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

10 15 * * *     root    /home/rafael/rsync.sh
#

depois rodei o comando:
#crontab -l (e me apareceu o seguinte resultado)
crontab -l
+ crontab -l
no crontab for root

3- Camila
Oi Camila, apesar de Raphael com ph ser elegante o meu é apenas com o comum "f" Rafael. Mais vamos ao que interessa.
Rodei o script manualmente e o mesmo funcionou corretamente, porem ele solicitou a senha para poder fazer o syncronismo, isso indica que as chaves podes estar em pastas erradas.
Após criar as chaves qual seria o diretório que eu deveria colocar-las, pois caso eu mude a chave do servidor B, e altere o arquivo rsync.sh o mesmo funciona mais solicita senha.

Mas uma vez agredeço a ajuda de todos.


Em 19 de junho de 2011 12:38, camila <camila@tecnocubo.com.br> escreveu:

oi Raphael, amigos da lista,

Deixa eu fazer uma perguntinha básica pra ver se eu entendi:
Depois que você colocou as chaves de ssh nas pastas corretas, fez mas um rsync pra ver se tudo foi sem problemas?
PQ.. se o rsync continuar pedindo senha, o scrip que você fez vai parar!!

essa cópia das chaves do ssh é justamente para evitar esse pedido de senha...


--
[]s
Camila Yamamoto
e-mail / msn = camila@TecnoCUBO.com.br

http://www.TecnoCUBO.com.br - Testamos e Separamos tudo, você só escolhe.






On Fri, 17 Jun 2011 15:37:47 -0300
 Rafael No <rafael.saxon@gmail.com> wrote:
> Boa tarde galera da lista, gostaria de uma ajuda, com relação a um
>servidor
> de backup que estou desenvolvendo, a situação é a seguinte:
> 1- instalei o rsync nas maquinas A e B, lembrando que a B é o
>servidor de
> backup e a A é o servidor de arquivos.
> Após ter instalado fiz um teste e ocorreu tudo certo, consegui fazer
>o
> backup dos arquivos, sem nenhum problema.
>
> 2- Instalei o openssh-server (em ambos servidores A e B) e criei uma
>chave
> sem senha no servidor B, em seguida coloquei uma copia desta chave
> na pasta
> "/root/.ssh" no servidor A.
>
> 3- Criei um script da seguinte forma:
>
> #!/bin/bash
>
> INICIO=`date +%d/%m/%Y-%H:%M:%S`
> LOG=/home/usuario/log/`date +%Y-%m-%d`_rsync-log.txt
>
> echo " " >> $LOG
> echo " " >> $LOG
> echo "| ------ ------ ------ ------ ------ ------ -----------"  >>
>$LOG
> echo "  Sincronizacao iniciada em $INICIO" >> $LOG
>
> rsync -Cravzp -e "ssh -i /home/usuario/rsync.key"
>root@servidorA:/media/pasta/
> /media/pasta >> $LOG
>FINAL=`date +%d/%m/%Y-%H:%M:%S`
>
> echo "  Sincronizacao Finalizada em $FINAL" >> $LOG
> echo "| ------ ------ ------ ------ ------ ------ -----------"  >>
>$LOG
> echo " " >> $LOG
> echo " " >> $LOG
>
> Após ter criado o arquivo o salvei com o nome.sh, da seguinte forma:
> rsync.sh
>
> 4- Entrei no crontab e deixei o arquivo da seguinte forma.
> # nano /etc/crontab
>
> Arquivo:
> # /etc/crontab: system-wide crontab
> # Unlike any other crontab you don't have to run the `crontab'
> # command to install the new version when you edit this file
> # and files in /etc/cron.d. These files also have username fields,
> # that none of the other crontabs do.
>
> SHELL=/bin/sh
> PATH=/usr/local/sbin:/usr/
> local/bin:/sbin:/bin:/usr/sbin:/usr/bin
>
> # m h dom mon dow user    command
> 17 *    * * *    root    cd / && run-parts --report /etc/cron.hourly
> 25 6    * * *    root    test -x /usr/sbin/anacron || ( cd / &&
>run-parts
> --report /etc/cron.daily )
> 47 6    * * 7    root    test -x /usr/sbin/anacron || ( cd / &&
>run-parts
> --report /etc/cron.weekly )
> 52 6    1 * *    root    test -x /usr/sbin/anacron || ( cd / &&
>run-parts
> --report /etc/cron.monthly )
> #
> 10 15 * * *     root    /home/usuario/rsync.sh
>
> Posso alterar o horário mais nada muda o backup não inicia, gostaria
>de
> saber se alguém poderia me dar uma ajuda neste problema.
> Desde já agradeço tenham um bom final de semana.




Reply to: