我需要从一台小计算机(Red Pitaya-linux)获取数据并将其保存到外部PC,因为它非常大。另外,出于同样的原因,我不想先保存文件,然后使用 ssh 复制它。我应该在获取脚本中插入 ssh 吗?
答案1
如果我明白你在问什么,SFTP (https://www.freebsd.org/cgi/man.cgi?query=sftp&sektion=1)听起来将文件从一台服务器发送到另一台服务器是最好的选择。 SCP 命令也可能起作用,具体取决于数据有多大。您可以使用 WinSCP、Filezilla,或者仅从命令行运行(对于大多数安装为 usr/bin/sftp,但请确保包含 IP/主机名:端口)。
答案2
我应该在获取脚本中插入 ssh 吗?
可能是。
如果您在小型计算机上运行的任何内容都将收集数据打印到标准输出(或可以这样做),则只需运行它并将ssh
本地计算机上的标准输出重定向到文件即可。
例如
ssh user@redpitaya 'data-gathering-script-or-command' > localfile
如果输出很大,并且/或者您通过昂贵的网络连接连接到它,您可以通过在小机器上压缩标准输出来节省时间(也许还有金钱)。
例如
ssh user@redpitaya 'data-gathering-script-or-command | gzip' > localfile.gz
或者
ssh user@redpitaya 'data-gathering-script-or-command | gzip' |
gzip -d > localfile
或者,您可以使用xz
或lzma
或任何其他压缩工具来代替gzip
.
注意:您正在使用小型计算机上的 CPU 时间来最大限度地减少网络流量。如果这个小盒子有一个很小的、功率不足的 CPU,请小心不要使这个小盒子超载。