シンボリックリンクを使用して、ディスク全体のコンテンツを使用して「仮想」フォルダ/ファイルツリーを作成しています。本質的に混乱があり、スクリプトはファイル名などを緩めながら元の未編成ファイルへのシンボリックリンクを作成することにより、編成されたファイルツリーを作成します。これが完了したら、この「仮想」ファイルツリーをリモートサーバー--copy-links
パラメータでrsyncを使用します。
発生する問題は、rsyncがシンボリックリンク名の変更を完全に無視することです。たとえば、次のとおりです。
mkdir export # make a dir for export
ln -s /file.jpg export/fileLink.jpg # create a link to file.jpg
rsync --copy-links -avzhs --delete export/ /tmp/rsyncExport # rsync with an export dir
ls /tmp/rsyncExport/
fileLink.jpg
# we find our file (not a symlink) with the symlink name.
これまでのところは良いですが、リンク名を変更して再同期すると:
rm export/fileLink.jpg
ln -s /file.jpg export/fileLink2.jpg # create a link to file.jpg but with another name
rsync --copy-links -avzhs --delete export/ /tmp/rsyncExport # rsync again
ls /tmp/rsyncExport/
fileLink.jpg
# we find our file (not a symlink) with the old symlink name and not the new one.
明らかに、rsyncはリンクを「追跡」し、ファイルは変更されていないため、リンクが異なるという事実を無視して移動します。
上記の動作を修正する方法はありますか?
ご協力いただきありがとうございます。