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

Re: Rsync + Crontab



Fala Rafael,

    Duas coisas importantes para backup via rsync, antes do cron é.

    1ª Coisa certifique-se que o Daemon do rsync esta rodando no servidor de arquivos,
    rode o comando no shell direto, do servidor de backup.

       rsync -avzr --progress 172.22.0.1::CONTEXTO:/home/blablabla

        Onde o 172.22.0.1 deve ser o ip do servidor de arquivos, e o CONTEXTO é a configuração
feita no /etc/rsyncd.conf

        (Caso não saiba configurar o serviço de rsync no servidor com o /etc/rsyncd.conf, me avisa que te explico
com mais detalhes)


    Caso esteja baixando os arquivos ok.


    2ª coisa,  De praxe, verifique as permissões de execução, execute o script na mão como root, audite ele
mandando o comando (set -xv).




    Nunca mexi direto no arquivo de cron, aqui usamos debian/ubuntu pelo comando (crontab):

    Vire root, para que seu script tem permissão a todas as pastas/arquivos
    $sudo su

    #Para lista todos os processos já agendados no cron
    crontab -l

    #Para editar os processos do cron
    crontab -e

    Se for a primeira vez que vc estiver acessando ele vai solicitar o editor, eu uso o VIM,

    Adiciona o processo com o caminho por completo, (exemplo pra rodar a cada 15 min):

    */15 * * * * /arquivos/home/rafael/rsync.sh





    Observações finais,

    Pontos Agravantes:
    - O serviço de rsync, do servidor de arquivos estiver ok. (/etc/rsyncd.conf e rsync.key);
    - Vc conseguiu baixar os arquivos direto do shell;
    - As permissões para o root executar o rsync.sh estiverem ok;
    - Vc ter adicionado no crontab a tarefa como root;

    Se mesmo assim estiver dando erro, verifique essa parte do comando de download
    "ssh -i /home/usuario/rsync.key"

    Possuo 12 servidores com essa configuração, nenhum com o "ssh -i /home/usuario/rsync.key"
pra iniciar o daemon, pois eu restrinjo o download apenas para os ips informados no "hosts allow"
nas configurações do daemon.

Exemplo de /etc/rsyncd.conf para o daemon.
==============================
uid=root
gid=root

[tudo]
    path = /home/rafael
    read _only_ = false
    list = false
    hosts allow = 172.22.0.0/24
    transfer logging = yes
==============================

Abraço,
Samuka
-- samukasmk@gmail.com



Em 17-06-2011 15:37, Rafael No escreveu:
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: