在 Machine1 上,我有一个 Python2.7 脚本,它计算 RAM 中的一个大(最多 10MB)二进制字符串,我想将它写入 Machine2 上的磁盘文件,这是一台远程机器。做这个的最好方式是什么?
约束:
两台机器都是 Ubuntu 13.04。它们之间的连接速度很快——它们在同一个网络上。
Machine2 上可能尚不存在目标目录,因此可能需要创建它。
如果这很容易,我想避免将字符串从 RAM 写入 Machine1 上的临时磁盘文件。这是否消除了可能使用系统调用 rsync 的解决方案?
因为字符串是二进制的,它可能包含可以解释为换行符的字节。这似乎排除了可能对 Machine2 上的 echo 命令使用系统调用的解决方案。
我希望这在 Machine2 上尽可能轻巧。因此,我想避免在 Machine2 上运行 ftp 等服务或在那里进行其他配置活动。另外,我不太了解安全性,因此除非确实有必要,否则我希望避免打开其他端口。
我在 Machine1 和 Machine2 上设置了 ssh 密钥,并希望将它们用于身份验证。
编辑:Machine1 正在运行多个线程,因此多个线程可能会尝试在重叠时间写入 Machine2 上的同一文件。我不介意在这种情况下将文件写入两次(或多次)导致的效率低下,但 Machine2 上的结果数据文件不应被同时写入损坏。也许需要 Machine2 上的操作系统锁?
我支持 rsync 解决方案,因为它是一个独立的实体,我理解得相当好,并且不需要在 Machine2 上进行配置。