我想构建一个巨大的数据块(某种备份)并通过网络(ssh 或 rsync)将其发送到另一台主机。远程上有足够的空间存放数据,但本地主机上没有,所以我不能将它存储为本地文件。我想在数据进入管道时计算数据的校验和(然后与生成的远程文件的校验和进行比较)。所以我正在寻找一个程序,我可以把它放在管道的中间,让它计算通过的所有内容的校验和。
在我脑海中弹出的两个“MITM”程序是pv
,mbuffer
但似乎都没有这个功能。此外cat
,还有dd
不足 :-) 各种用于计算校验和的程序md5sum
,如sha1sum
等等,都会消耗它们的输入,并且不会将其传递下去。帮助?谢谢!
您可以使用
tee
和处理替换>(…)
,例如此管道正在将校验和写入 stderr 以不干扰 stdout。如果你想保留它,你可以将哈希重定向到一个文件。