Назад | Перейти на главную страницу

Выполните rsync, следуя символическим ссылкам

У меня есть каталог, содержащий символические ссылки на другие каталоги, расположенные на разных носителях в моей системе:

/opt/lun1/2011
/opt/lun1/2010
/opt/lun2/2009
/opt/lun2/2008
/opt/lun3/2007

Но символические ссылки выглядят так:

/files/2011
/files/2010
/files/2009
/files/2008
/files/2007

Как я могу выполнить rsync что следует за символическими ссылками?

например.:

rsync -XXX /files/ user@server:/files/

В -L Флаг для rsync будет синхронизировать содержимое файлов или каталогов, на которые есть ссылка, а не символическая ссылка.

Просто столкнулся с этой проблемой. И если вы хотите, чтобы rsync обрабатывал каталоги с символическими ссылками как каталоги, вам нужен K вариант

rsync -K /files/ user@server:/files/

Тебе нужно обе -L и -K если у вас есть символические ссылки с обеих сторон, например у вас уже есть первая rsync и вы хотите обновить резервную копию с помощью rsync.

    -L, --copy-links            transform symlink into referent file/dir
    -K, --keep-dirlinks         treat symlinked dir on receiver as dir

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