如何使用变量 $PATH 定义的路径从一台服务器同步到另一台服务器?

发布于 2024-10-11 12:36:42 字数 63 浏览 6 评论 0原文

您好,我想使用 rsync 将数据从一台服务器复制到另一台服务器,但复制数据的路径存储在我从数据库获取的变量中。

Hi i want to copy data from one server to another using rsync but my path to copy data is stored in a variable which i got from the database.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我一直都在从未离去 2024-10-18 12:36:42

我认为您需要阅读 rsync 的手册页以及它对尾部斜杠的说明:

源上的尾部斜杠会更改此行为,以避免在目标上创建额外的目录级别。您可以将源上的尾随 / 视为“复制此目录的内容”而不是“按名称复制目录”,但在这两种情况下,包含目录的属性都会传输到目标上的包含目录。换句话说,以下每个命令都以相同的方式复制文件,包括它们对 /dest/foo 属性的设置:

   rsync -av /src/foo /dest
   rsync -av /src/foo/ /dest/foo

I think you need to read rsync's man page and what it tells about trailing slashes:

A trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination. You can think of a trailing / on a source as meaning "copy the contents of this directory" as opposed to "copy the directory by name", but in both cases the attributes of the containing directory are transferred to the containing directory on the destination. In other words, each of the following commands copies the files in the same way, including their setting of the attributes of /dest/foo:

   rsync -av /src/foo /dest
   rsync -av /src/foo/ /dest/foo
萌无敌 2024-10-18 12:36:42

如果不知道实际的 rsync 调用,就很难理解正在发生的事情。 OTOH,“使其仅复制更新的文件”取决于“更新”的含义。从手册页:

-c,--校验和

这改变了 rsync 检查文件是否已被删除的方式
发生变化并需要转移。
如果没有此选项,rsync 将使用
“快速检查”(默认情况下)检查
如果每个文件的大小和最后的时间
发送者之间的修改匹配
和接收器。该选项改变了这一点
比较每个的 128 位校验和
具有匹配大小的文件。
生成校验和意味着
双方都会消耗大量磁盘
I/O读取文件中的所有数据
在转移(这是之前
任何将要完成的阅读
传输更改的文件),这样就可以
显着减慢速度。

Without knowing the actual rsync call it's a bit difficult to understand what is happening. OTOH, "to make it copy only the updated files" depends on what you mean by "updated". From the man page:

-c, --checksum

This changes the way rsync checks if the files have been
changed and are in need of a transfer.
Without this option, rsync uses a
"quick check" that (by default) checks
if each file’s size and time of last
modification match between the sender
and receiver. This option changes this
to compare a 128-bit checksum for each
file that has a matching size.
Generating the checksums means that
both sides will expend a lot of disk
I/O reading all the data in the files
in the transfer (and this is prior to
any reading that will be done to
transfer changed files), so this can
slow things down significantly.

秋千易 2024-10-18 12:36:42

这是因为您将目录视为文件。

设置

mkdir foo
touch foo/a
mkdir /tmp/foo

问题

rsync -av foo /tmp/foo

解决方案

rsync -av foo/ /tmp/foo  # Notice foo has a trailing '/'
rsync -av foo/. /tmp/foo # Another way to do the same thing

It's because your treating the directory as a file.

Setup

mkdir foo
touch foo/a
mkdir /tmp/foo

Problem

rsync -av foo /tmp/foo

Solution

rsync -av foo/ /tmp/foo  # Notice foo has a trailing '/'
rsync -av foo/. /tmp/foo # Another way to do the same thing
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文