web-dev-qa-db-ja.com

symリンクをたどりながら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/

71
ensnare

-L rsyncのフラグは、シンボリックリンクではなく、リンクされているファイルまたはディレクトリの内容を同期します。

104
MadHatter

ちょうどこの問題に遭遇しました。また、rsyncでシンボリックリンクされたディレクトリをディレクトリとして扱う場合は、Kオプションが必要です。

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

18
Jmeyering

both-L-Kは、両側にシンボリックリンクがある場合に必要です。すでに1回目のrsyncを実行していて、rsyncを使用してバックアップを更新したい。

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

そのような場合、-Lのみを使用すると、受信側のシンボリックリンクが消去され、新しい実際のディレクトリが作成されます。

5
HongboZhu