Como usar o rsync daemon.
O Rsync possui a opção de rodar como um daemon onde o usuario que se conecta para executar a cópia dos dados não existe no servidor.
Nas distribuições baseadas em debian o rsync possui um script de inicialização como serviço sem depender do xinetd o que já acontece nas distros baseadas em Red Hat.
Em ambas as distribuições será necessário criar os seguites arquivos:
/etc/rsyncd.conf
/etc/rsyncd.secrets
Obeservação:
O arquivo de secrets deve ter permissão 600
Diferenças de configuração entre Red Hat e Debian:
Como o rsync no modo daemon irá rodar pelo xinetd algumas alterações devem ser observadas
uid que no debian pode ser nobody com xinetd tem que ser root
gid que no debian pode ser nobody com xinetd tem que ser root
Sintaxe do rsyncd.conf
uid = user que opera o daemon
gid = grupo que opera o daemon
list = yes
read onlyrue
use chroot = true
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = IP
slp refresh = 30
secrets file = /etc/rsyncd.secrets
use slp = false
[nome da seção]
path = local onde estão os dados a serem copiados
ignore errors = yes
ignore nonreadable = yes
transfer logging = yes
comment = comentario
auth users = user de copia dos dados
Sintaxe do rsyncd.secrets
user:password
Para habitar o rsync via xinetd edit arquivo /etc/xinetd.d/rsync para o seguinte conteúdo
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = –daemon
log_on_failure += USERID
}
Script para copia do dados lado do cliente:
#!/bin/bash
RSYNC=$(which rsync)
LOGGER=$(which logger)
SECRETS=”/etc/rsync.secret”
OPTIONS=”-avztpoglH –delete –owner –group –force –password-file=$SECRETS”
USER=”user”
LOG=”/var/log/backup.log”
LOGGERTAG=”Sync images”
SERVERS[1]=”ip do servidor daemon”
SECTIONS[1]=”section name”
DESTINATIONS[1]=”path de destino”
$LOGGER -t $LOGGERTAG “Iniciando a sincronia.”
COUNT=${#SERVERS[@] }
for i in `seq 1 $COUNT`
do
$RSYNC $OPTIONS $USER@${SERVERS[$i]}::${SECTIONS[$i]} ${DESTINATIONS[$i]} >> $LOG
done
$LOGGER -t $LOGGERTAG “Sincronia concluida.”
Recent Comments