Rsync はシンボリックリンクを正しくコピーしません。

Rsync はシンボリックリンクを正しくコピーしません。

あるサーバーから別のサーバーにいくつかのrpmをコピーするrsyncがありますが、問題は受信サーバーでシンボリックリンクが正しく生成されないことです。

私のrsyncオプションはrsyncd.confで設定した-avz --force --deleteものです。munge symlinks = no私がここで正確に何を見逃しているのかわかりません。

たとえば、server-1-rsync-senderでは、

test.rpm -> /var/www/html/repo/Package/test.rpm

Server-2-rsync-receiver rsycnで作成

test.rpm -> var/www/html/repo/Package/test.rpm

編集#1 rsyncコマンドの完了

RSYNC_OPTIONS='-lavz --force --delete'

rsync $RSYNC_OPTIONS * rsync://${RSYNC_USER}@${rpm_server}:/yum >>/var/log/rsync_sync.log 2>&1

ログを見ると、正しいシンボリックリンクがあることがわかります。

#2 rsyncd.conf 編集

[yum]
path = /var/www/html/repo
use chroot = no
max connections = 100
auth users = rpms
hosts allow = ***********
secrets file = ***********
uid = apache
gid = nobody
list = yes
read only = no
munge symlinks = no

私は両方とも閉じているので、mungeシンボリックリンクとchrootの組み合わせだと思います。どちらもrsyncなしに設定すると、最初のエントリが削除されるようです/

答え1

この問題の解決策を見つけました。 rsyncd.confからmunge linkオプションを削除してからchroot = yesを変更すると、シンボリックリンクがシームレスに移行されます。

これはセキュリティホールを開く可能性がありますが、何でもシンボリックリンクすることができ、mungeリンクとchrootが保護するように設計された保護装置はありません。したがって、このソリューションの使用は環境によって非常に異なります。

関連情報