Назад | Перейти на главную страницу

Cygwin rsyncd отправляет слишком много имен файлов

У меня rsyncd работает как служба Windows, но когда я пытаюсь получить доступ к модулю и выполнить синхронизацию с ним, я получаю нужные мне файлы, а также многие другие файлы, которых у меня нет, потому что они не находятся в этом модуле на пульте дистанционного управления. конец. Для проверки я поместил только один файл в папку резервных копий, названную «the_only_file». С моей локальной машины:

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

Я использовал следующие команды в cygwin для создания службы:

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

А мой rsyncd.conf довольно прост:

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

Что я могу сделать, чтобы Cygwin rsyncd работал так, как должен? (Зачем ему пытаться отправить мне каталог / proc? Так странно ...)

Я решил это, добавив use chroot = false к моему /etc/rsyncd.conf.

Я «решил» это, сделав это так, как я не хотел: я добавил следующую строку в свой rsyncd.conf:

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

И rsyncd.exclude:

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

Теперь он работает, как задумано, с оговоркой, что это означает, что у меня не может быть каталогов / файлов с именами «dev», «proc» или «cygdrive» в корневом каталоге моего общего ресурса. Наверное, для большинства не имеет значения; было бы сбивать с толку наличие папки "cygdrive" или "proc", но можно было бы привести аргумент, что папка для разработчиков будет называться "dev" или что-то в этом роде. Опять же, кажется несколько незначительным, возможно, большинству все равно.