Linux 上通过网络进行文件同步:scp 还是 rsync?

Linux 上通过网络进行文件同步:scp 还是 rsync?

我有两台 Linux(Debian)机器“A”和“B”,它们通过路由器无线互相连接。

在机器“A”上,我运行一个脚本,该脚本每 5 秒在特定文件夹(例如 ~/files/)中生成一个 1MB 的新文件。生成后文件不会更改。

文件生成后,它应该与之前生成的其他文件一起在机器“B”上可用。

什么是最有效的方法(根据 CPU/网络使用率和传输时间)来做到这一点?

建议:

  • 在脚本中运行scp以在文件生成后复制文件,因此每个文件都被单独复制。

  • 运行rsync以在机器之间同步文件夹内容。

答案1

使用rsync。SCP 的开销较大。

还可以考虑使用共享连接ControlMaster。如果每 5 秒钟只传输一次这个文件,那么您大部分时间都会花在启动连接上,而不是传输文件上。

答案2

使用 Rsync,

Rsyc 仅复制自上次复制以来发生变化的文件,从而节省大量带宽和 CPU。

SCP 非常棘手,仅复制更改的文件,并且默认情况下每次都会复制整个文件夹。

答案3

您还可以使用NFS或其他共享协议在这两台机器之间创建一个共享文件夹。

相关内容