6
GNU Parallelを使用してrsyncを並列化する
rsyncスクリプトを使用して、あるホストのデータを別のホストのデータと同期させています。データには、ほぼ1.2 TBに寄与する多数の小さなサイズのファイルがあります。 これらのファイルを同期するためにrsync、次のコマンドを使用しています。 rsync -avzm --stats --human-readable --include-from proj.lst /data/projects REMOTEHOST:/data/ proj.lstの内容は次のとおりです。 + proj1 + proj1/* + proj1/*/* + proj1/*/*/*.tar + proj1/*/*/*.pdf + proj2 + proj2/* + proj2/*/* + proj2/*/*/*.tar + proj2/*/*/*.pdf ... ... ... - * テストとして、これらのプロジェクトのうち2つ(8.5GBのデータ)を選択し、上記のコマンドを実行しました。順次プロセスであるため、完了までに14分58秒かかります。したがって、1.2TBのデータの場合、数時間かかります。 複数のrsyncプロセスを並列に実行できる場合(&、xargsまたはを使用parallel)、時間を節約できます。 私はparallel(cdソースディレクトリにingした後)で以下のコマンドで試しましたが、実行に12分37秒かかりました: parallel --will-cite -j 5 rsync -avzm --stats --human-readable {} REMOTEHOST:/data/ …