首次使用 Vagrant 通过 rsync 将文件从客户机复制到主机

首次使用 Vagrant 通过 rsync 将文件从客户机复制到主机

在执行vagrant up“shell”配置时,将一些文件下载到同步文件夹中。这些文件也应复制到主机同步文件夹中,以便项目可从主机访问。使用NFS同步,这是自动完成的,但不与同步。有没有办法使用 rsync 和 Vagrant 来实现这一点?这是同步文件夹配置:

config.vm.synced_folder "./", "/vagrant", type: "rsync", owner: "www-data",
rsync__exclude: [".git", "project1/app/cache", "project1/app/logs"],
rsync__args: ["--no-owner", "--verbose", "--archive", "-z", "--copy-links"]

答案1

根据文档,rsync 在 vagrant 中只是单向同步。这意味着您要么必须使用不同的机制(如 nfs)来实现从客户机到主机的同步,要么必须实现自己的某种反向同步机制,如在主机上手动运行 rsync 命令。

有人可能会为 vagrant 编写一个 rsync-back 扩展(插件)。我不知道是否有现成的插件可以实现这一点。

如果您的客户机中安装了 virtualbox 客户机扩展,您可能还需要查看 virtualbox 共享文件夹机制,将其vboxsf作为 varant 同步文件夹的传输,而不是 nfs 和 rsync。

答案2

这些是从客户机同步到主机的命令,它们应该从您运行的文件夹中执行vagrant up

$ vagrant ssh-config > ssh_config
$ rsync -avH -e "ssh -F ./ssh_config" default:/vagrant/ ./

也可以看看这是我在 stackoverflow 上写的答案

答案3

如果您的客户机和主机有 ssh,您可以使用scp它来双向传输数据。

相关内容