split
Linuxにストリーミングバージョンがありますか?
SSHを介して大量のデータをバックアップしようとしていますが、SSHのシングルスレッド暗号化は転送を制限します。このマシンはハードウェアAESをサポートしていないため、ChaCha暗号化を使用しますが、CPUはまだネットワークに追いつくことができません。
だから私はデータストリームを2つの部分に分け、各ストリームを別々のSSH接続を介して送信し、ターゲットからストリームを一緒にマージすることでこの問題を解決できると思いました。これにより、暗号化負荷を複数のCPUコアで共有できます。これはすでに存在しなければならないという十分に一般的なアイデアのように見えますが、見つかりません。
編集する:一部の数字では、古いコンピュータのデータ、つまりギガビット有線ネットワークを介して数百ギガバイトのデータをバックアップしています。回転するラストドライブの単一ファイルアクセスよりも高速ですので、パーティションからイメージをコピーしています。したがって、技術的にはランダムアクセスデータですが、それを処理するには大きすぎます。圧縮してみましたがあまり役に立ちませんでした。データの圧縮率が低い。
だから私が探しているのは、split
バイナリmerge
データストリームを複数のストリームに分割する(おそらく固定チャンクに分割される)ことです。
ベストアンサー1
このような:
parallel --block -1 --pipepart --recend '' -a bigfile 'ssh dst cat \>{#}'
完了すると、cat
ファイルが一緒に表示されます。
ssh dst cat $(seq $(parallel --number-of-threads)) '>' bigfile.bak
2倍大きいファイルのためのスペースが必要です。