Fil*_*ile 4 unix bash checksum pipe
我想将大文件从一台计算机安全地移动到另一台计算机,在存储之前必须对其进行处理。
我想将文件通过管道传输到运行处理脚本的 ssh 中。
local.example.com$ cat file | ssh remote.example.com process.sh
Run Code Online (Sandbox Code Playgroud)
(如果您有比我更好的想法,请提出)
在处理脚本中,我想在保存文件之前对文件进行校验和加密。问题来了。
解决方案可能有两种:
hack cksum 也可以做类似猫的工作并在 stderr 上打印结果,这样我就可以做
cksum --pipe | openssl enc > myfile
Run Code Online (Sandbox Code Playgroud)
并通过 stderr 返回校验和。不幸的是,我查看了代码,似乎很难在不造成性能/缓冲损坏的情况下做到这一点;)
可能有一个 cksumming-transfer 工具可以完成这一切,但我没有想到。无论如何,我想避免非标准和复杂的东西。
多谢。
编辑:关于答案的有用链接http://www.linuxjournal.com/content/shell-process-redirection
如果您以 开始接收脚本cat > inputfile,它将吃掉所有 STDIN 直到 EOF,然后您的脚本可以运行输入文件所需的任何操作。
您还可以使用tee:
echo foo | tee >(sha1sum) >(md5sum)
foo
d3b07384d113edec49eaa6238ad5ff00 -
f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 -
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1876 次 |
| 最近记录: |