Доступ к общедоступному ресурсу Windows 10 из Ubuntu без имени пользователя и пароля

Строго говоря, следующие цели можно интерпретировать как противоречащие друг другу.

  1. резервное копирование всех файлов в каталоге , но не вложенных файлов, т.е. --exclude='*/'
  2. создать резервную копию определенных каталогов, т. е. включить некоторые вложенные файлы

Пожалуйста, смотрите ниже объяснение того, почему ваши аргументы не сработали так, как вы предполагали. Далее ниже см. подходящую альтернативу, которая может подойти для вашей цели (она удовлетворяет требованиям № 1, № 3 и версии № 2).

Почему ваша команда не сработала:

То, как rsync обрабатывает ваши аргументы командной строки, следующие аргументы эквивалентны выражению --exclude='*/'

--exclude='/' - -include='желаемая_подпапка/'

т. е. ваша команда исключила все вложенные файлы, тем самым исключив и файлы в нужных подпапках.

Эта проблема затрагивает ваше второе наблюдение, а именно то, что файлы в цели, которые удаляются в источнике, не удаляются. На самом деле, ваша команда прекрасно справляется с удалением таких файлов на верхнем уровне. Однако файлы на один уровень ниже не удаляются, поскольку они уже исключены. Полезно помнить, что --delete относится к --delete-во время, а не к --delete-before.

Решения, удовлетворяющие требованиям № 1, № 3 и версии № 2: Следующее решение может удовлетворить ваши потребности

rsync -avz --delete --include='includes/*' --include='js/*' --include='css/*' --exclude='*/*' /home/gameboy/abc/ /home/gameboy/PartialMirror/abc/

. Оно удовлетворяет следующим требованиям: 1. Резервирует все файлы и каталоги на глубине 1, но не вложенные файлы. 2. Сделайте резервную копию нужных папок 3. Удаляет файлы в месте назначения, которых нет в источнике.

Другой более громоздкий вариант выглядит следующим образом.

  rsync -vlptgoDd --delete src/ dest/

Это удовлетворяет условиям №1 и №3, но исключает все вложенные файлы (помните, что папки также являются файлами в *nix). Я избегал указывать параметр -r, чтобы он не был рекурсивным. Удалить работы и папки на глубине 1 копируются. В дополнение к сохранению временных меток (-t) я включил другие типичные параметры копирования архива.

Более стандартный способ получить различное поведение rsync в разных папках — разбросать правила фильтрации для каждого каталога по иерархии; то есть создавать файлы .rsync-filter для каждой папки, которая требует уникального поведения. Например,

   rsync -avF src/ dest/
1
10.06.2019, 01:41
1 ответ

Попробуйте это:

sudo mount -t cifs //ServerName/Public /mnt --verbose -o vers=3.0,domain=ServerName,username=guest,guest,file_mode=0666,dir_mode=0777

Из-за опции --verboseможет появиться много сообщений независимо от того, успешно это или нет, но если это не удается, скопируйте и вставьте эти сообщения в свой исходный вопрос, чтобы разрешить дальнейшее устранение неполадок.

0
28.01.2020, 00:10

Теги

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