gpt4 book ai didi

bash - Google Compute Engine 项目的两个实例之间文件传输的最佳实践

转载 作者:行者123 更新时间:2023-11-29 09:32:00 26 4
gpt4 key购买 nike

在 Google Compute Engine 项目的两个实例之间执行文件传输的最佳做法是什么?

这就是我想要完成的:

在我目前的项目中,我有一个用于提供网页和存储数据文件的主实例。在收到用户发起的计算请求后,将使用保存的图像创建一个新实例来执行此计算。在计算结束时,我希望将输出文件复制回我的主实例进行存储。

我将如何处理:

一个 bash 脚本用于启动一个新实例以及与计算请求相关的元数据和一个启动脚本,该脚本查询元数据服务器并触发这个新创建的实例中的计算。

启动脚本中的最后一行运行第二个 bash 脚本,该脚本尝试在删除实例之前启动文件传输。

第二个 bash 脚本中的文件传输是使用 gcutil push 命令执行的。第二个 bash 脚本如下:

#! /bin/bash
# Execute file transfer
gcutil --project=my_project push my_main_instance /home/username/file_to_be_transferred.txt /home/username/dir_on_main_instance
# Delete current instance
node=$(eval hostname)
echo Deleting instance: $node
gcutil deleteinstance --force --delete_boot_pd $node

遇到的问题:

虽然新实例运行良好且计算能够成功完成,但文件传输未能继续进行。但是,根据第二个 bash 脚本成功删除了该实例。

我不确定是什么阻止了文件传输的执行。奇怪的是,如果我 ssh 进入这个新实例并手动运行第二个脚本,文件传输将成功,然后实例被删除。保存的图像包含 ssh key ,并且在执行 push 命令时,StrictHostKeyChecking 设置为 no。

如果有人能指出正确的方向来解决这个问题,我将不胜感激。非常感谢。

最佳答案

gcutil push没有做任何神奇的事情——它只是为你设置了一个 scp 命令行。我推荐关注一组 passwordless ssh来自 Web 的说明使用一组凭据,而不是您的项目级 ssh key ,您明确为此副本的目的。

关于bash - Google Compute Engine 项目的两个实例之间文件传输的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23772605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com