rsync 以某种方式将文件从一台服务器下载到另一台服务器

rsync 以某种方式将文件从一台服务器下载到另一台服务器

我已经尝试关注如何自动存档目录?但没有成功。无论如何,我的问题如下:我想知道是否有某种服务或程序可以在服务器上运行,以使文件夹保持更新,其中包含在另一台服务器上创建的所有文件。我不需要真正的同步服务,因为我不需要拥有相同的内容。

我尽力解释得更好。

  1. 服务器 a -> 有一个根文件夹,其中包含一些文件和子文件夹(文件可能非常大)

  2. 服务器 b -> 每天连接服务器 A 一次,并下载服务器 A 根文件夹中的所有文件和子文件夹

  3. (这可能很好,但不是强制性的)服务器 b -> 完成服务器 A 的文件和文件夹的下载后,继续删除服务器 A 中的所有项目以保持其空间可用

两台服务器都运行 Ubuntu。我尝试过 rsync 命令,但似乎效果不太好(或者我可能做错了什么,我不是 Linux 领域的专家):每次我需要与用户保持与服务器的连接,当连接断开时,它就会从头开始。

答案1

假设服务器 A 上有一个包含如下示例代码的脚本:

#!/bin/sh
rsync -acz /folder_to_copy username@serverB:/path/to/store
rm -rf /folder_to_remove

请记住:始终使用-c来构建校验和,尤其是远程复制时,即使速度较慢。如果路径名中有空格,请使用 \(反斜杠)将其转义,如下所示/path/with/a/space\ here。但请尽量避免编辑:空格,(不是反斜杠);-D。

使其可执行chmod u+x /path/to/script/with/name.sh

现在,如果你运行此脚本,它将首先将所有文件上传/folder_to_copy到服务器 B。/path/to/store然后(递归地)从该目录中删除所有文件和文件夹。

现在你可以为这个脚本创建一个 cron 任务,让它每天晚上 3 点运行,例如

始终思考自己所做的事情,尝试理解给定的命令并测试一切。手册页是你的朋友

相关内容