我有两台 Linux(Debian)机器“A”和“B”,它们通过路由器无线互相连接。
在机器“A”上,我运行一个脚本,该脚本每 5 秒在特定文件夹(例如 ~/files/)中生成一个 1MB 的新文件。生成后文件不会更改。
文件生成后,它应该与之前生成的其他文件一起在机器“B”上可用。
什么是最有效的方法(根据 CPU/网络使用率和传输时间)来做到这一点?
建议:
在脚本中运行
scp
以在文件生成后复制文件,因此每个文件都被单独复制。运行
rsync
以在机器之间同步文件夹内容。
答案1
使用rsync
。SCP 的开销较大。
还可以考虑使用共享连接ControlMaster
。如果每 5 秒钟只传输一次这个文件,那么您大部分时间都会花在启动连接上,而不是传输文件上。
答案2
使用 Rsync,
Rsyc 仅复制自上次复制以来发生变化的文件,从而节省大量带宽和 CPU。
SCP 非常棘手,仅复制更改的文件,并且默认情况下每次都会复制整个文件夹。
答案3
您还可以使用NFS
或其他共享协议在这两台机器之间创建一个共享文件夹。