マウントされたディスクからリモートでマウントされた別のディスクに「複製」します。私はそれらをローカルとリモートと呼びます。ローカルはスラックウェア、リモートUbuntuはローカル
df -h /mnt/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/fedora-root 49G 4.3G 43G 10% /mnt
遠隔で
df -h /media/ubuntu/1c34a414-9fa2-4bfe-a57c-7f82f1b31b29
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk1p2 57G 7.2G 47G 14% /media/ubuntu/1c34a414-9fa2-4bfe-a57c-7f82f1b31b29
ローカルでこのコマンドを使用した後、rsyncが操作を正しく完了できないことがわかりました。
cd /mnt
for i in * ;do rsync -avP --delete --ignore-errors $i/ 192.168.0.75:/media/ubuntu/1c34a414-9fa2-4bfe-a57c-7f82f1b31b29/$i; done
たとえば、ローカルで表示します。
file bin
bin: symbolic link to usr/bin
そしてリモートで...
file /media/ubuntu/1c34a414-9fa2-4bfe-a57c-7f82f1b31b29/bin/
/media/ubuntu/1c34a414-9fa2-4bfe-a57c-7f82f1b31b29/bin/: directory
リポジトリをリモートで破棄し、シンボリックリンク(ローカル)にする必要があります。 rsyncのオプションは何ですか?使用:
rsync -avPl rsync -rvPl
動作しません
答え1
-l
()オプションは()によって暗示されますが、ターゲットディレクトリが-links
シンボリックリンクになるようにするには、-K()も必要です。既存の構造を変更する必要があるかもしれません。-a
--archive
--keep-dirlinks
--delete-before
rsync -avKP --delete --ignore-errors src/ 192.168.0.75:dst/
/bin
元のコードを詳しく見てみると、を含む今見えるサーバーの最上位レベルを繰り返しています/usr
。この場合は/bin
シンボリックリンクですが、/usr/bin
コードはそれをrsync
withに渡します$i/
。これはと同じです/bin/
。したがって、逆参照したrsync
のでシンボリックリンクとして扱わないでください$i/
。
for
ループを削除してディレクトリrsync
ツリー全体を処理することで、最上位シンボリックリンクを表示して正しく送信できます。
答え2
素晴らしい「解決方法」を見つけました。
代わりに
cd /mnt
for i in * ;do rsync -avXHhP --delete --ignore-errors $i/ 192.168.0.75:/media/ubuntu/1c34a414-9fa2-4bfe-a57c-7f82f1b31b29/$i; done
はい
rsync --avXHhP --delete --ignore-errors /mnt/ 192.168.0.75:/media/ubuntu/1c34a414-9fa2-4bfe-a57c-7f82f1b31b29 ; done
動作し、ディレクトリはシンボリックリンクでも同じです。
編集:バックアップブートでより有利な-avXHhPを使用して修正しました。