データフローを変更せずにパイプライン内にMD5を作成する

データフローを変更せずにパイプライン内にMD5を作成する

暗号化されたmysql(未使用データ)を暗号化されたファイルにダンプするメカニズムを生成するように求められました。メカニズムは、次の特定の基準を満たす必要があります。

  • Linuxで実行する必要がある
  • 暗号化されていないSQLデータは一時ファイルにも書き込まれません。
  • 暗号化されていないダンプストリームのmd5(または他のハッシュ)の生成
  • sh シェルのみ使用可能なため、プロセス置換は使用しない

次のようなものが必要です。

mysqldump | md5-tool >> dump.md5 | gzip | encryption-tool

私の問題は、私が見つけたすべてのハッシュツールがストリームを送信せずにチェックサムのみを送信することです。最も近いツールは-pこのオプションを含むBSD md5ですが、Linuxでは利用できません。

これを行うためのツールを知っている人はいますか?

ベストアンサー1

標準構文で実行する必要がありますshが、使用しているシステムがそれをサポートしている場合は、/dev/fd/x手動でプロセス置換を実行できます。

{
  mysqldump | tee /dev/fd/3 | gzip | encryption-tool > dump.gz.enc
} 3>&1 | md5sum >> dump.md5

ないシステムでは、名前付き/dev/fd/xパイプを次のように使用します。@ilkkachuさんが表示しました。これは、プロセス交換サポートを備えたシェルです/dev/fd/x


¹kshの初期バージョンを除いて、この機能は、プロセス交換サポートがシステムサポートに基づいて条件付きであった80年代半ばから提供されました/dev/fd/x。 rc、zshなどの他の一部のシェルは、元の(古い)一時的な名前パイプのみを使用していました。

おすすめ記事