【问题标题】:How to sync two folders between two VMs Linux?如何在两个 VM Linux 之间同步两个文件夹?
【发布时间】:2021-01-26 07:36:56
【问题描述】:

我是 Linux 新手。我在 VM1 上有一个文件夹 1,在 VM2 上有一个文件夹 2。如何在编辑文件夹 1 后立即进行配置,文件夹 2 也会更改。 谢谢。

【问题讨论】:

    标签: linux directory


    【解决方案1】:

    你可以考虑 rsync (https://linux.die.net/man/1/rsync)。

    但是,我正在使用 SCP,它是使用我的私钥的“安全副本”,如下所示: scp -r -i /home/private_key_file what_to_copy.txt /var/projects/some_folder root@123.123.123.123:/var/projects/where_to_copy_to >> log_file_with_results.log 2>&1

    所以我的 VM2 受到私钥 (/home/private_key_file) 的保护,我使用用户“root”登录。希望这会有所帮助,但在我看来,这将是最安全的方式。

    然后我会每分钟在 crontab 中运行该命令。对于即时同步我不知道怎么做(还),我希望 1 分钟的增量对你来说足够了吗?

    【讨论】:

    • 首先,感谢您的回答^^。我有 12 个虚拟机 Linux。我只想编辑一个虚拟机上的一个文件夹,所有剩下的文件夹也会改变。这可能吗?
    • 啊抱歉,是的,我的回答不完整,因为我只给出了命令。所以是的,我会每分钟在 crontab 中运行该命令。对于即时同步我不知道该怎么做(还),我希望 1 分钟的增量对你来说足够了吗?因此,请确保您已运行 cron,然后通过运行 crontab -e 来编辑 contab
    • 是的,您认为我们会每隔一分钟使用一次重新同步命令吗?对吗?
    • 是的,我会这样做,但是然后使用 scp 而不是 rsync 来占用私钥/SSL 来保护您的服务器(如果您还没有的话)
    • 哦,我明白了。谢谢。
    【解决方案2】:

    您可以在主机上挂载与 VM 来宾上的驱动器/文件夹相同的文件夹。这意味着 VM1 中的写入会写入主机上的文件夹,并且也会显示在 VM2 上。

    如何做到这一点取决于您用于虚拟化的工具。

    【讨论】:

    • 这确实也是一个好主意,当您使用诸如“块存储卷”之类的东西时,您可以将其挂载到您的 Droplet/VM 上。但是,是的,这取决于您的 c 结构
    • 你能告诉我更多细节吗?我使用 Ubuntu。谢谢。
    • 很遗憾没有,因为我不知道你有什么样的设置。但例如在 VMware 中,您可以在两台机器上使用“将文件夹 X 装载为 VM 中的驱动器”之类的选项。作为文件夹,只需为此目的创建一个新文件夹,例如在您的用户目录中(对于小型个人设置,在生产环境中可能是其他文件夹)。
    【解决方案3】:

    你可以试试 rsync + crontab

    rsync /path/to/folder1 username@host:/path/to/folder2
    

    您可以在 crontab 上设置此任务,使用一小段时间延迟。

    不要忘记将各自的密钥 ssh pk 放入您的虚拟机 ( /.ssh )

    它对我来说很容易。

    【讨论】:

      【解决方案4】:

      除了其他答案提到的 rsync 之外,您可以考虑使用网络文件系统 (NFS) 将目录挂载到其他 VM 上。以下article 记录了安装和配置 NFS 的步骤。

      如果您是 Linux 新手,我建议您在进行任何更改之前先对虚拟机进行快照,以便在出现问题时能够恢复到较早的快照。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-18
        • 2020-02-11
        • 1970-01-01
        • 1970-01-01
        • 2015-07-07
        • 2012-09-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多