O Cygwin rsyncd envia muitos nomes de arquivos

5

Eu tenho o rsyncd sendo executado como um serviço do Windows, mas quando tento acessar um módulo e sincronizá-lo, eu obtenho os arquivos que quero, além de muito que não faço - porque eles não estão localizados nesse módulo no final remoto. Para testar, coloquei apenas um único arquivo na pasta de backup, chamado "the_only_file". Da minha máquina local:

username@local:~$ rsync username@remote::backup .

receiving incremental file list
file has vanished: "/proc" (in backup)
file has vanished: "/cygdrive/c" (in backup)
file has vanished: "/cygdrive/d" (in backup)
skipping non-regular file "dev/clipboard"
skipping non-regular file "dev/conin"
skipping non-regular file "dev/conout"
skipping non-regular file "dev/console"
skipping non-regular file "dev/dsp"
skipping non-regular file "dev/full"
skipping non-regular file "dev/kmsg"
skipping non-regular file "dev/null"
skipping non-regular file "dev/ptmx"
skipping non-regular file "dev/pty0"
skipping non-regular file "dev/random"
skipping non-regular file "dev/scd0"
skipping non-regular file "dev/sda"
skipping non-regular file "dev/sda1"
skipping non-regular file "dev/sda2"
skipping non-regular file "dev/sr0"
skipping non-regular file "dev/tty"
skipping non-regular file "dev/urandom"
skipping non-regular file "dev/windows"
skipping non-regular file "dev/zero"
./
the_only_file
cygdrive/
dev/

sent 70 bytes  received 613 bytes  455.33 bytes/sec
total size is 0  speedup is 0.00
rsync warning: some files vanished before they could be transferred (code 24) at main.c(1708) [generator=3.1.0]

username@local:~$ ls
cygdrive dev the_only_file

Eu usei os seguintes comandos no cygwin para criar o serviço:

cygrunsrv --install "rsyncd" --path "$(which rsync)" --args "--daemon --no-detach" --desc "Starts rsync daemon to accept rsync connections" --disp "rsync daemon" --type "auto"

E meu rsyncd.conf é bem direto:

chroot = yes
charset = UTF-8
log file = /var/log/rsyncd.log

[backup]
      uid = username
      secrets file = /cygdrive/c/cygwin/etc/rsyncd.secrets
      auth users = username
      path = /cygdrive/c/Users/username/backup
      list = false
      readonly = false
      dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz *.7z

O que eu posso fazer para fazer o rsyncd do Cygwin se comportar como deveria? (Por que tentaria me enviar o diretório / proc? Tão estranho ...)

    
por courtlandj 06.06.2014 / 00:33

2 respostas

1

Eu "resolvi" isso fazendo da maneira que eu não queria fazer: adicionei a seguinte linha ao meu rsyncd.conf:

    exclude from = /cygdrive/c/cygwin/etc/rsyncd.exclude

E o rsyncd.exclude é:

- /dev/*
- /dev
- /cygdrive/*
- /cygdrive
- /proc

Agora funciona como previsto, com a ressalva de que isso significa que não posso ter diretórios / arquivos com o nome "dev", "proc" ou "cygdrive" no diretório raiz do meu compartilhamento. Provavelmente não importa para a maioria; seria confuso ter uma pasta "cygdrive" ou "proc", mas um argumento poderia ser feito de que uma pasta para devs seria chamada de "dev" ou algo assim. Mais uma vez, parece um pouco menor, talvez a maioria não se importe.

    
por 18.06.2014 / 21:22
1

Eu resolvi isso adicionando use chroot = false ao meu /etc/rsyncd.conf .

Esta página especifica que ativar este parâmetro resultará no problema que você descreveu.

    
por 11.10.2015 / 20:06

Tags