Получение Rsync из / home / * / в тот же каталог

Просто упомяну еще один полезный инструмент, это встроенная функция pushd . С помощью

$ pushd dirname

текущий каталог будет помещен в стек каталогов (вы можете посмотреть на этот стек с помощью dirs ), а текущий каталог будет изменен на имя каталога . Позже вы можете вернуться в последний (самый верхний в стеке) каталог, используя встроенную команду popd .

Это должно работать как минимум в bash, zsh, csh и tcsh.

Если вы просто хотите перейти в предыдущий каталог, в котором вы были, на помощь приходит cd - .

2
28.07.2016, 17:46
2 ответа

У вас может быть только один целевой каталог. В вашем случае общая цель - / home или / . Таким образом, чтобы дублировать удаленный путь в локальной цели, используйте опцию -R (длинная версия - относительная ):

... --relative REMOTEIP:/home/*/mail/ /

Вы можете добавить - нет -implied-dirs , чтобы избежать попыток rsync скопировать атрибуты для заданных каталогов (но не для каких-либо подкаталогов). Сначала проверьте -n , чтобы убедиться, что это будет делать то, что вы ожидать.

3
29.04.2021, 00:11

Следующий вариант также позволяет добиться этого, но способ meuh чище.

/usr/bin/rsync -avuz --rsh=ssh --temp-dir=/tmp --port=55556 --include='*/mail' --include='*/mail/**' --exclude='*/*' --rsync-path=/usr/bin/rsync REMOTEIP:/home/ /home > /var/log/rsync/test. log 2>&1

1
29.04.2021, 00:11

Теги

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