Linux 环境。所以,我们有这个程序 't_show',当使用 ID 执行时,会在控制台上写入该 ID 的价格数据。没有其他方法可以获取此数据。
我需要使用最小带宽、最小连接数在两台服务器之间复制 ID 1-10,000 的价格数据。在目标服务器上,数据将是每个 id 的单独文件,格式为:
<id>.dat
这样的事情将是冗长的解决方案:
目的地:
files=`seq 1 10000`
for id in `echo $files`;
do
./t_show $id > $id
done
tar cf - $files | nice gzip -c > dat.tar.gz
来源:
scp user@source:dat.tar.gz ./
gunzip dat.tar.gz
tar xvf dat.tar
也就是说,将每个输出写入自己的文件,压缩和 tar,通过网络发送,提取。
它的问题是我需要为每个 id 创建一个新文件。这占用了大量的空间并且不能很好地扩展。
是否可以将控制台输出直接写入(压缩)tar 存档而不创建中间文件?任何更好的想法(也许直接通过网络编写压缩数据,跳过 tar)?
正如我在目标服务器上所说的,tar 存档需要提取为每个 ID 的单独文件。
感谢任何花时间提供帮助的人。