我想安全地将一个大文件从一台计算机移动到另一台计算机,在存储之前必须对其进行处理。
我想把文件传递给运行处理脚本的ssh。
local.example.com$ cat file | ssh remote.example.com process.sh
(如果你有任何想法比我的好,请建议)
在进程脚本中,我希望在保存文件之前对文件进行校验和加密。这就是问题所在。
解决方案可能是两个:
hack cksum也做了类似猫的工作并在stderr上打印结果,这样我才能做到
cksum --pipe | openssl enc > myfile
通过stderr获取校验和。 不幸的是,我查看了代码,在没有做一些性能/缓冲损坏的情况下,我似乎很难做到这一点;)
可能有一个cksumming-transfering工具可以做到这一切,但它并没有让我想到。 无论如何,我想避免非标准和复杂的东西。
非常感谢。
修改:有关回答http://www.linuxjournal.com/content/shell-process-redirection
的有用链接答案 0 :(得分:4)
如果您使用cat > inputfile
开始接收脚本,那将占用所有STDIN直到EOF,然后您的脚本可以运行输入文件所需的任何操作。
您也可以使用tee
;
echo foo | tee >(sha1sum) >(md5sum)
d3b07384d113edec49eaa6238ad5ff00 -
f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 -