深くネストされたディレクトリ構造のコピー

深くネストされたディレクトリ構造のコピー

アプリケーションの移行の一環として、ディレクトリ構造を新しいホストにコピーする必要がありました。ディレクトリ構造は次のとおりです。

{10 - ff} / {00 - ff} / {00 - ff}(除外)/固有のファイル名

だから何百万ものファイルがあります。ツリーの3番目のレベルはまだ完全に埋められておらず、すべての3番目のレベルディレクトリにファイルがあるわけではありません。

セカンダリフォルダの場合でも、duを完了するのに時間がかかります。 tar|nc の使用には 10 日かかります。日中は力がないかもしれませんが、10日はできません。

答え1

これに使用されますrsync

  1. 新しいサーバーを使用するように切り替える前に、あるrsyncホストから別のホストにディレクトリ全体の操作を実行してください。これを完了するのに長い時間がかかるようです。
  2. 完了したら、rsync再実行して最初のrsync中に変更されたすべてのファイルをキャプチャします。
  3. rsync変換を実行するまで定期的に実行し続けます。これは、転送する必要があるデータ量を低く保つためです。
  4. 中断が発生し、古いサーバーへのすべての書き込みが停止します。
  5. 最後に実行しましたrsync
  6. 新しいサーバーでサービスを開始する

答え2

このディレクトリ構造がそのデバイス/パーティション内のデータの大部分であり、問​​題が発生した場合はディレクトリ構造を無視してください。

代わりに、デバイスをアンマウント(または読み取り専用で再マウント)し、dd(1)netcatを使用してファイルシステムブロックを新しいホストの同じサイズのパーティションにコピーします。

目的の階層外に不要なデータがある場合は、移行後に削除してください。

ホスト間ネットワークにボトルネックが発生する可能性がある場合は、ドライブをインポートして新しいホストに接続することも検討できます。

答え3

ワンタイムコピーの場合、同じシステムにソースとターゲットをインストールできる場合は、次のことができます。

find [source top dir] | cpio -dump [target mountpoint]

ファイル属性をコピーして保存します。 cpioツールにも圧縮パラメータが必要です。

関連情報