0

さて、ファイル構造のコピーを作成する必要がありますが、構造が巨大で (何百万ものファイル)、それをコピーする最速の方法を探しています。

私は現在使用していますcp -lR "$original" "$copy"が、これでも非常に遅いです(数時間かかります)。

使用できるより高速な方法があるかどうか疑問に思っていますか? 私は知ってrsync --link-destいますが、これはそれほど速くはありませんが、これらのスナップショットを1時間ごとに作成したいので、実際にはもっと速くしたいと思います.

別の方法は、変更のみを各フォルダーにコピーし(すぐに見つけることができます)、スペースを解放する必要があるときにそれらを「フラット化」します(最後の完全なスナップショットに達するまで、新しいフォルダーを古いフォルダーにrsyncします)。各フォルダは独自の完全なスナップショットになります。

4

3 に答える 3

0

インストールしておけpaxば使えます。tar または cpio と考えてください。ただし、POSIX では標準です。

#!/bin/sh

# Move "somedir/tree" to "$odir/tree".
itree=$1
odir=$2
base_tree=$(basename "$itree")
pax -rw "$itree" -s "#$itree#$base_tree#g" "$odir"

これ-s replstrは不運にも必要ですが (それ以外の場合は $odir/$itree を取得します)、うまく機能し、これまでのところ大きな構造体では cp よりも高速でした。

ある人が既に提案したように、pax を持っていない場合、tar はもちろん別のオプションです。

于 2013-07-04T18:19:33.320 に答える
0

なぜ link-dest を破棄するのですか? 私はそのオプションでスクリプトを使用し、かなり頻繁にスナップショットを作成していますが、パフォーマンスはかなり良好です。

再考する場合に備えて、私が使用するスクリプトは次のとおりです: https://github.com/alvaroreig/varios/blob/master/incremental_backup.sh

于 2013-07-04T17:42:36.723 に答える