Как использовать rsync с --delete, оставив нетронутыми нерезервированные каталоги?

Как использовать rsync с --delete, оставив нетронутыми нерезервированные каталоги?

Я знаю, что существует довольно много тем «rsync и символические ссылки», но я не могу найти ни одной, которая подходила бы к моей проблеме.

Я хочу использовать rsync для создания резервных копий раздела /home, с той разницей, что /home содержит несколько настоящих домашних каталогов и несколько символических ссылок на другую файловую систему:

/home/user1 (a directory)
/home/user2 (a symlink to another fs)

Я стараюсь использовать:

rsync -axv --delete /home /some_backup/

Где /some_backupуже содержится:

/some_backup/home/user1
/some_backup/home/user2
/some_backup/home/user3

…из которых каталоги user2и user3заполнены другим rsync с другого компьютера. К сожалению, эта строка rsync не работает, так как мой вызов rsync удалит /some_backup/home/user3(потому что этого нет в моем /home) и также /some_backup/home/user2(потому что это символическая ссылка вне fs).

Есть ли способ указать rsync игнорировать целевые каталоги, которые не имеют соответствия в источнике? Мне нужно, --deleteпотому что в противном случае это поведение требуется.

Одним из возможных решений является использование одного оператора rsync для каждого каталога /home/user, который необходимо скопировать (вместо резервного копирования всего /home). Это неидеально, поскольку пользователи приходят и уходят, что потребует гораздо большего обслуживания.

Связанный контент