rsync только определенные типы файлов из указанных подкаталогов -

JAOH — это Java-реализация SSH2. Вы подключаетесь непосредственно к существующему процессу удаленного сервера.
Не такой процесс, как при входе в систему.

Если вы хотите «делать что-то» (переадресация портов, переадресация X11, передача файлов )вы интегрируете его как часть своих собственных Java-программ.Он не создает новый пользовательский процесс на удаленном сайте, как вам кажется.

0
07.01.2021, 04:21
2 ответа

rsync не включает /в начале рассматриваемых путей. Почему? выбор дизайнера.

Но есть еще одна проблема. Вы использовали **в своих включениях для включения файлов в подкаталоги. Однако сами подкаталоги исключаются. Попробуйте изменить включения и исключения на:

--include='*/' --include='BackupOfSettings/**.tar.gz' --include='BackupOfPackages/**.installed' --include='BackupOfImages/**.img.gz' --exclude='*' --prune-empty-dirs

Это :включить все каталоги, только нужные файлы, никаких других файлов, и удалить пустые каталоги.

Другим вариантом было бы написать:

--include='BackupOfSettings/' --include='BackupOfSettings/**/' --include='BackupOfSettings/**.tar.gz' --include='BackupOfPackages/' --include='BackupOfPackages/**/' --include='BackupOfPackages/**.installed' --include='BackupOfImages/' --include='BackupOfImages/**/' --include='BackupOfImages/**.img.gz' --exclude='*'

В данном случае сюда входят конкретные каталоги, их подкаталоги и требуемые файлы. Этот вариант потребуется, если у вас есть большое количество других каталогов в исходном дереве, которые вы хотите избежать поиска.

0
18.03.2021, 22:37

Чтобы расширить принятый ответ @Freddy

Мои исходные и конечные каталоги:

openWrtPath="/mnt/usb/openwrt/"  
ncpPath="/media/myCloudDrive/openwrt"

Моя цель — синхронизировать только файлы с расширением.tar.gz из подпапки в исходном каталоге с именем :BackupOfSettings. Подпапки в подпапке BackupOfSettings также игнорируются.

Вот упрощенная версия команды в вопросе. Кредит здесь и здесь для объяснения того, как rsync будет синхронизировать определенный тип файла из определенного подкаталога -.

rsync -vvritn --include='BackupOfSettings/' --include='BackupOfSettings/*.tar.gz' --exclude='*' $openWrtPath ncp:$ncpPath
  1. Чтобы добиться этого с помощью rsync, вам нужно сначала включить подкаталог -, содержащий нужные вам файлы:--include='BackupOfSettings/'
  2. Затем в отдельном включении вам нужно определить шаблон в том же подкаталоге -, который будет соответствовать желаемому типу файла:--include='BackupOfSettings/*.tar.gz'
  3. Затем вам нужно исключить все остальное, используя :--exclude='*', который соответствует и исключает файлы и папки, которые не включены явно.

--exclude='/*'против--exclude='*'

rsync -vvritn --include='BackupOfSettings/' --include='BackupOfSettings/*.tar.gz' --exclude='/*' $openWrtPath ncp:$ncpPath

Если мы используем --exclude='/*', то приведенная выше команда разрешит все файлы в папке BackupOfSettings sub -, потому что это исключение соответствует только файлам и папкам sub -в исходном каталоге... оно не соответствует файлы в подпапках -исходного каталога.

0
18.03.2021, 22:37

Теги

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