web-dev-qa-db-ja.com

Macの数十万のファイルをNAS

ApertureライブラリをNASに転送しようとしています。数十万のファイル(非常に小さいファイル)が含まれています。

OS Xが大きなファイルのコピーを終了した後、コピー操作の推定時間は2時間から4〜5日になります(そして増加します)。

解決策は、tarを実行してtarballをコピーすることですが、問題は、コピーしたいライブラリが約80 GBで、Macに残っているのが10GBしかないことです。

そのような状況でそれらをコピーする方法はありますか?

7
OgreSwamp

問題はおそらく、多くの小さなファイルで作業していて、ほとんどのコピーツールにはファイルごとのオーバーヘッドがあることです。システムのどこにも実際にtarballを作成しなくても、ファイルをtarで処理し、データを宛先にパイプして、もう一方の端でアーカイブを解凍することができます。

tar cf - "~/Pictures/Aperture Library" | (cd "/Volumes/NAS/" && tar xf -)

これの欠点は、プログレスメーターがないことですが、従来のコピーよりも大幅に高速になるはずです。

7
evilsoup

rsync コマンドラインツールを使用して、ファイルの一方向の同期を行うことができます。 rsyncの仕組みにより、忍耐力がない場合でもプロセスを簡単に中断できます。後で簡単に再開できます。まだ転送されていないファイルのみがコピーされます。

Terminal.appを開いてから、次のようにrsyncを呼び出す必要があります。

rsync -avh --progress "~/Pictures/Aperture Library" "/Volumes/NAS/"

ここで、最初のパスはライブラリを指しています。ライブラリはデフォルトでPicturesの下にあるはずです。よくわからない場合は、ライブラリをターミナルコマンドラインにドラッグアンドドロップすると、パスが自動的に埋められます。 NASのパスについても同じことが言えます。

-aオプションは、再帰的コピーを含むいくつかのデフォルトを設定するアーカイブモードを有効にします。 -vは、コマンドをより冗長にします。 -h人間が読めるファイルサイズをオンにします。

Rsyncは進行状況メーターを表示します。プロセスをキャンセルする場合は、を押します CtrlC。コマンドを再度呼び出して、rsyncを続行することができます。

5
slhck

外部デバイスが完全なsshシェルをサポートしている場合は、次のことができます。

tar cf - /your/dir|ssh -C 'tar xf - -C /directory/where/you/unpack'

ファイルが多いため、tarに-cオプションを使用することはお勧めしません。彼を印刷すると速度が低下します。ネットワーク上でオンザフライで圧縮するには、sshのフラグ-Cが必要です。小さなデータは小さなデータの暗号化/復号化を引き起こし、これにより速度が向上します。それでも速度が遅い場合は、クリプトチッパーを3desからtwofishに変更するか、可能であれば1desに変更できます。最後は安全ではありませんが最速です。

それ以外の場合はrsyncを使用できますが、rsyncは外部デバイスにインストールする必要があります。男を参照してください。 rsyncは、rsyncサーバーまたはsshによってデータを転送できます。

0
Znik

MHISoftfastcopyオープンソースをお試しください。ファイルとディレクトリを再帰的にコピーします。 https://github.com/mhisoft/fastcopy/releases

0
Tony