だからこの物語GNU coreutils MLでは、誰かがcpを使用して4億3000万のファイルをコピーし、ハードリンクを保存する必要がありました。やっとやっと10日で行われました。
最も大きな問題は、ハードリンクを保存するためにcpがコピーされたファイルのハッシュテーブルを保存しなければならなかったため、最終的に17GBのメモリを占有し、スワップ時にシステムがクラッシュすることでした。
これをよりよく処理するユーティリティはありますか?
答え1
tar
解決策がrsync
失敗し、ディレクトリがファイルシステムのルートである場合は、以前のバックアップdump/restore
ユーティリティを使用できます(はい、まだ機能しています)。
dump
カーネルファイルシステムインタフェースを介さずにファイルシステムの特性を複製するので、速度はかなり高速です。
不便な点は、dump
コピーがソースファイルシステムの変更に敏感であることです。したがって、ファイルシステムのマウント解除、読み取り専用の再マウント、またはコピーを開始する前に、ファイルシステムにアクセスできるすべてのアプリケーションを停止することをお勧めします。その条件を尊重すると、コピーは信頼できます。
ファイルシステムの種類によっては、dump
コマンド名が変更されることがあります。たとえば、xfsdump
XFSのコマンド名を使用できます。
次のコマンドは例と似ていますtar
。
dump 0uf - /dev/sdaX | (cd /target && restore rf -)
数字は増分コピーレベルで、0
コピー全体を表します。
答え2
rsyncが私にいくつかの問題を引き起こしたことを覚えています。これがハードリンクなのかデバイスファイルなのか、それとも何なのかよく分からない。それ以来
tar -cv $(ls) | ( cd /mnt; tar xv )
これにより、すべてのファイルがコピーされます。 /mntとして。私の完全な話はここにあります。http://www.linuxintro.org/wiki/Cloning#file-by-file_copy_2