複数のtarコマンドを並列に実行するには?

複数のtarコマンドを並列に実行するには?

シェルスクリプトを使用して、多くの小さなファイルを含む4つのディレクトリを圧縮したいと思います。このスクリプトは実行に時間がかかりすぎるため、利用可能なリソースをより活用するために、シェルスクリプトを使用して4つのtarコマンドを並列に実行したいと思います。

現在使用しているコマンドは次のとおりです。

tar cf - /ebs/uat/uatappl | gzip -c > /ebs/backup/uatappl.tar.gz
tar cf - /ebs/uat/uatcomn | gzip -c > /ebs/backup/uatcomn.tar.gz
tar cf - /ebs/uat/uatora | gzip -c > /ebs/backup/uatora.tar.gz
tar cf - /ebs/uat/uatdata | gzip -c > /ebs/backup/uatdata.tar.gz

ベストアンサー1

次のように、すべてのtarをバックグラウンドに配置できます。

tar cf - /ebs/uat/uatappl | gzip -c > /ebs/backup/uatappl.tar.gz &
tar cf - /ebs/uat/uatcomn | gzip -c > /ebs/backup/uatcomn.tar.gz &
tar cf - /ebs/uat/uatora | gzip -c > /ebs/backup/uatora.tar.gz &
tar cf - /ebs/uat/uatdata | gzip -c > /ebs/backup/uatdata.tar.gz &

ただし、十分なプロセッサ性能と高速ディスクが必要です。それ以外の場合、並行性により、合計実行時間が順次実行時間より長くなります。

おすすめ記事