Использование параметров включения и исключения Rsync для включения каталога и подкаталога, но исключения файлов в подкаталоге

man sshd отвечает на все ваши вопросы:

ПРОЦЕСС ВХОДА

Когда пользователь успешно входит в систему, sshd выполняет следующие действия:

    { {1}}
  1. [...]

  2. Запускает оболочку или команду пользователя. Все команды выполняются под оболочкой входа пользователя, как указано в базе данных системных паролей.

2
16.06.2016, 15:57
2 ответа

Конечно, это просто сделать с помощью правил исключения. Чтобы исключить каталог и все его содержимое, просто исключите сам каталог, он даже не будет пройден. Чтобы включить каталог somedir , но не его содержимое, т.е. передать пустой каталог, исключите somedir / * . Когда предложение exclude начинается с / , это путь от корня каталога, который вы синхронизируете.

rsync -a --exclude='/version/photofolder/*' --exclude='anotherfolderwithstupidname/*' htdocs/ elsewhere/

Если вы хотите включить все подкаталоги … / version , но не файлы, не являющиеся каталогами, в … / version , а не содержимое подкаталогов:

rsync -a --include='/version/*/' --exclude='/version/*' htdocs/ elsewhere/

Если хотите для включения всех подкаталогов … / version и их содержимого, но не файлов, не являющихся каталогами, в … / version :

rsync -a --include='/version/*/' --include='/version/*/*' --exclude='/version/*' htdocs/ elsewhere/
2
27.01.2020, 22:11

Новая командная строка, которая создает --включаемые каталоги и копирует их содержимое и/или файлы, но ТОЛЬКО НА 2 КАТАЛОГА В ГЛУБИНУ. Почему?

rsync -avid --progress ~/MyDocuments/'Inet Publishing'/ --recursive --include='LandisTwo (2019)' --include='LandisTwo (2020) {backup}' --include='*.*' --exclude='**/' e6420:/home/landis/Media/2TBackup/Backups/MyDocuments/"Inet\ Publishing"/ | tee -a ~/logs/Backup-InetPublishing_2020.txt
  • Я обнаружил, что каталоги созданы, но НИКАКИЕ ФАЙЛЫ в них не копируются (нет рекурсии ). файлы в родительском каталоге копируются, но над ним не работают подкаталоги -.

это работает для меня, с рабочей станции на сервер, резервное копирование (rysnc )моего личного сайта на другой сервер в дополнение ко всему каталогу со всеми сайтами при rysnc'ing parent../Inet\ Publishing («n» в -avin означает «Сухой -Run», удалить. ).

--исключить */ — это все остальные каталоги в «Inet Publishing/» и, по-видимому, должно быть после --включить порядок процесса rsync для каждого человека (если до --включить, то все --исключается, и дальнейшие токены не обрабатываются, по крайней мере, так я это прочитал и на практике пробуждаю, когда придумываю это. ).

На самом деле это одна строка одного из моих скриптов, которые я запускаю с помощью cron. *очевидно, хост назначения может быть IP,у меня есть хосты, определенные в /etc/hosts, и пары ключей ssh, поэтому я использую имя хоста.

rsync -avin --progress ~/MyDocuments/'Inet Publishing'/ --include='LandisTwo (2019 )' --include='LandisTwo (2020 ){ backup}' --exclude=' */' e6420 :/home/landis/Media/2TBackup/Backups/MyDocuments/ | tee -a ~/logs/Backup -InetPublishing _2020.txt
0
01.03.2020, 22:05

Теги

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