
大容量ファイルをリモートサーバーにコピーするシナリオについてお問い合わせください。
最も簡単なケースの1つは次のとおりです。
tar c myfile | ssh myserver tar x
ネットワーク接続が早ければ、すべてが正常です。
遅いネットワークではこれを行います
tar c myfile | bzip2 -1 | ssh myserver tar xj
- CPU時間を犠牲にして転送速度を上げます。
もちろん、圧縮率で遊ぶことができ、通常はCPUが忙しくてネットワークが飽和しないように、正しい圧縮率を推測しようとすることができます。
bzip2
// xz
...出力バッファが使用されているときにできるだけ圧縮するように指示できる圧縮ユーティリティまたは圧縮フラグはありますか?
答え1
zstd --adapt
これzstd
圧縮ユーティリティ適応圧縮をオンにするオプションがあります(このオプションはzstd
v1.3.6に追加されました)。これは、「現在認識されているI / O条件」に合わせて圧縮を調整します。
zstd
詳細についてはマニュアルを参照してください。
完全なパイプラインは次のとおりです。
tar -c -f - source_directory |
zstd --adapt |
ssh user@server 'cd /someplace && { zstd -d | tar -x -f -;}'
または
tar -c -f - source_directory |
zstd --adapt |
ssh user@server 'zstd -d | tar -x -C /someplace -f -'
パイプラインの最初の項目に追加すると、-v
次の進行状況バーが表示されます。zstd
(L7) Buffered : 32 MB - Consumed : 192 MB - Compressed : 72 MB => 37.50%
(L7)
圧縮レベルを示します。非常に大量のデータの場合、時間の経過とともに変動すると予想される可能性があり、これはzstd
実際にはI / O条件(およびデータ自体)に適応していることを示しています。