Rsync включает папки и ссылки, но исключает файлы

Изman sshd_config:

MaxAuthTries

Specifies the maximum number of authentication attempts permitted per connection. Once the number of failures reaches half this value, additional failures are logged. The default is 6.

Насколько я помню, это было постоянным для многих выпусков OpenSSH, но, как и в случае любого настраиваемого,лучше всего запустить manв вашей собственной системе (удаленной системе в этом случае ), чтобы проверить страницы руководства для фактической установки в этой системе.

1
11.09.2020, 13:23
1 ответ

Вы не можете сделать это непосредственно в rsync, поскольку, как вы заметили, его правила фильтрации отличают только каталоги от «всего остального».

Однако вы можете создать команду findдля выбора нужных элементов(lдля символических ссылок, dдля каталогов ), а затем передать этот список в rsyncдля копирования

find src/ \( -type l -o -type d \) -printf "%P\0" |
    rsync --files-from - --from0 -av src/ dst/

Сценарий

mkdir /tmp/608951
cd /tmp/608951
mkdir -p src/{test1,test2} dst; ln -s test1 test/link

Демонстрация, копирование каталогов и символьных ссылок из srcвdst

find src/ \( -type l -o -type d \) -printf "%P\0" | rsync --files-from - --from0 -av src/ dst/

Выход

building file list... done
link -> test1
test1/
test2/

sent 134 bytes  received 25 bytes  318.00 bytes/sec
total size is 5  speedup is 0.03

Свидетельство с использованием ls -R src dst, показывающее, что dstсодержит только каталоги и символическую ссылку, тогда как srcтакже содержит файлы

dst:
link  test1  test2

dst/test1:

dst/test2:

src:
link  test1  test2

src/test1:
file1

src/test2:
file2

Если у вас нет GNU find, измените его -printf "%P\n"на обычный -print, а также удалите --from0из rsync. Недостатком является то, что вы не сможете копировать файлы, имена которых содержат странные символы, такие как перевод строки.

1
18.03.2021, 23:05

Теги

Похожие вопросы