rsync: Como posso extrair o arquivo --exclude-from do host remoto?

1

Espero que alguém mais bem informado sobre o rsync possa me ajudar aqui. Estou configurando o rsync automático na rede, usando (ou tentando usar) o seguinte comando:

 rsync -e ssh -avhxAXHr --rsync-path="sudo rsync" --exclude-from=:$EXCLUDEFILE --link-dest=$LINKDEST --files-from=:$SOURCES backupuser@${RMTHST}:/ $DESTDIR

Eu quero manter o host de origem responsável pelo que pode ser copiado. Para esse fim, estou bloqueando a entrada sudo para backupuser no host de origem, de modo que tenha para extrair o arquivo --files-from do host de origem. A entrada do sudoers se parece com:

backupuser ALL(root:root) /usr/bin/rsync --server --sender -vlHogDtpAXrRxe.iLs --files-from /securepath/from-file . /

A página man do rsync diz:

...the --files-from file can be read from  the  remote host instead of the
local host if you specify a "host:" in front of the file (the host must
match one end of the transfer).  As a short-cut, you can specify just a
prefix of ":" to mean "use the remote end of the transfer". For example:

   rsync -a --files-from=:/path/file-list src:/ /tmp/copy

Como vou manter o arquivo --files-from no host de origem, faz sentido manter o arquivo --exclude-from no host de origem também. No entanto, a página do manual rsync não descreve uma maneira de obter o arquivo --exclude-from do host remoto, e meus testes falharam ao usar formatação semelhante à usada para --files-from. Do ponto de vista de segurança, isso não é grande coisa, mas não ser capaz de manter os dois arquivos no mesmo local pode se tornar uma dor de cabeça administrativa ao lidar com vários servidores.

Estou faltando alguma coisa? Existe uma maneira de fazer o rsync extrair ambos os arquivos do servidor remoto (sem executar um rsync inicial separado para extrair o arquivo --exclude-from primeiro)?

    
por John 10.11.2016 / 00:27

1 resposta

0

Se você tiver recorrido ao uso do sudo no controle remoto e também quiser manter o controle sobre o controle remoto do que está sendo acessado, você também deve considerar usar o rsync como um daemon. Veja man rsyncd.conf

Isso significa que você abre uma porta sobre a qual você pode controlar quais arquivos são visíveis, em que direção os dados podem ir (por exemplo, somente leitura), quando o serviço está disponível e assim por diante. Você não precisa de sudo e pode restringir quais logins de usuários são permitidos.

Em particular, você pode especificar um arquivo de exclusão em /etc/rsyncd.conf com

 exclude from = somefilename
    
por 10.11.2016 / 11:18