この特定のアーカイブ構造を維持しながら、2つ以上のハードリンクされたフォルダツリーセットをコピーするRsyncの動作構文は何ですか?
PS:SOまたはSU SEに適していますか?
現在/サンプルフォルダ構造テンプレート:
Base Folder (Source):
C:\iMazing
\Backups
\{device A UDID} // Last backup of Device A (AL)
\{device B UDID} // Last backup of Device B (BL)
\iMazing.Versions
\Versions
\{device A UDID} // Backup history of Device A (AL)
\{device B UDID} // Backup history of Device B (BH)
Base Folder (Destination):
S:\ExtHDD\APPLE\iMazing.Backups
\{device A UDID} // Last backup of Device A (AL)
\{device B UDID} // Last backup of Device B (BL)
\iMazing.Versions
\Versions
\{device A UDID} // Backup history of Device A (AH)
\{device B UDID} // Backup history of Device B (BH)
UDID名を持つフォルダの下のフォルダツリー
- AL:{device A UDID} //デバイスAの最後のバックアップ
- AH: {device A UDID} // A デバイスのバックアップ履歴
- ALとAHは、それらの間にハードリンクを持つ2つのグループを形成します。
- 私たちは一度に個別に働きたいです。
Rsyncの使用方法(Cygwin RSyncまたは上記のWindowsのいずれかの方法でお勧めします):
- コピーする{AL+AH} などの個別のハードリンクセットCドライブからSドライブへ同時に
- ハードリンクを維持
- サブツリーフォルダ構造の維持
- WindowsまたはNTFSフォルダとファイル構造に問題はありません。
返品:
- 単一の設定(1つのRSyncコマンド)のみを実行できますか、または一度に複数の指定された設定を実行できますか?
- 通常、2つのSETがあります。構造内に3つのSETがある場合(3つのHLフォルダがあるSET)、Rsyncのコマンドラインはどのように変更されますか?
UDIDフォルダ名を使用した実際/実際の例:
- XL&XHは一緒にSETを形成するハードリンクフォルダツリーです。。
Base Folder (Source):
C:\Users\UserName\AppData\Roaming\iMazing\Backups
\f22ebcffcdd1b508d3f7564431a9db98d69208ef-20190414-170122 //..(XL)
\iMazing.Versions
\Versions
\f22ebcffcdd1b508d3f7564431a9db98d69208ef-20190414-170122 //..(XH)
ハードリンクコピーを保存するための参照ツールのリスト:
https://superuser.com/questions/997190/copy-to-another-ntfs-disk-and-preserve-hard-links/
- 同期Windowsでの変更点
- (複数の*NixおよびWindows: Cygwinバリアント、CW RSync、Delta Copy/Syncrify/Synaman、GRsync、RsyncBackup、Rsync.exe pkg、Rclone、AcroSync、YInterSync)
- ln.exe - コマンドラインハードリンク-http://schinagl.priv.at/nt/ln/ln.html(勝つ)
ベストアンサー1
この質問に対する以前の反復を理解するのは難しいので、その例と一緒に、あなたが意味するものを単純化されたバージョンで繰り返します。
構造
C:\iMazing\Backups\
AL\
files...
BL\
files...
iMazing.Versions\Versions\
AH\
files...
BH\
S:\ExtHDD\APPLE\iMazing.Backups\
AL\
destination files...
BL\
destination files...
iMazing.Versions\Versions\
AH\
destination files...
BH\
destination files...
要件は、ハードリンクと相対構造を維持しながらコピーしてAL\...
コピーするAH\...
ことですC:
。S:
実際のケース
mkdir -p iMazing/Backups/{AL,BL,iMazing.Versions/Versions/{AH,BH}} ExtHDD/APPLE/iMazing.Backups
touch iMazing/Backups/{AL/albackup,BL/blbackup}
touch iMazing/Backups/iMazing.Versions/Versions/{AH/ahbackup,BH/bhbackup}
この時点で私がしたことを見ることができますls -R
。 、、、、ディレクトリに、、、ファイルが含まれているfind
必要があります。ディレクトリをターゲットにコピーします。albackup
ahbackup
blbackup
bhbackup
AL
AH
BL
BH
AL
AH
rsync --dry-run -avHPR iMazing/Backups/./AL iMazing/Backups/./iMazing.Versions/Versions/AH ExtHDD/APPLE/iMazing.Backups/
-R
()フラグは--relative
タグのソースパスを保持します/./
。例では、これはiMazing/Backups/
削除され、残りをターゲットパスに追加することを意味します。
--dry-run
削除()後、-n
内部ハードリンクと構造を維持しながら、ソースALおよびAHディレクトリのファイルとディレクトリをコピーします。
よくある質問
Cygwinなので、スラッシュを使用し、リンクを維持するにはフラグ()/cygdrive/{DriveLetter}
を含める必要があります。-H
--hard-links
rsync -aHR /cygdrive/C/iMazing/Backups/./AL /cygdrive/C/iMazing/Backups/./iMazing.Versions/Versions/AH /cygdrive/ExtHDD/APPLE/iMazing.Backups/
何が起こっているのかを見るには、-v
(--verbose
)および/または-P
()フラグを含めることができます。--partial --progress
この場合、悪名高い「デルタ」アルゴリズムや圧縮を気にしないでください(この方法は、rsync
ネットワークのクライアントサーバー構成に2つのサーバーが含まれている場合にのみ機能します)。 S:ドライブをホストしているサーバーでインスタンスを実行できる場合は、はるかにrsync
効率的です。rsync
--dry-run
実際に何もせずに何が起こるのかを見るために追加されました。