【问题标题】:Using Google Cloud Storage with rsync将 Google Cloud Storage 与 rsync 结合使用
【发布时间】:2014-11-05 03:55:17
【问题描述】:

我是 Google Cloud 的新手。我们过去一直使用 AWS 进行在线备份——本质上,我们的本地服务器运行 rsync 到 AWS 的 EC2 实例,并且一切正常。我现在正在尝试从 AWS 迁移到 Google,当然设置非常不同。使用 gsutil rsync 在我看来,我根本不需要启动 Compute Engine,我可以直接将内容推送到 gs://aws_mnt 存储桶中

在我们的 AWS 实例上安装 SDK 后,我可以使用 gsutil cp -n 轻松地将所有备份推送到 gs://aws_mnt 存储桶

但接下来我想在本地服务器上运行一个 cron 作业,它使用 rsync 而不是 cp,原因很明显。

我有两个问题:

  1. 尽管阅读了相应的文档 (here),但我太愚蠢了,我无法弄清楚如何永久授权本地服务器,因此我不必执行 gcloud auth login 并从浏览每个会话,至于无法真正工作的 cron 作业。

  2. 当我尝试使用 gsutil rsync 从本地服务器到从 AWS 预填充的 gs://aws_mnt 存储桶时,我收到错误:

gsutil rsync /mnt/archive/backups gs://aws_mnt/kahless 构建同步状态... 跳过云子目录占位符对象 gs://aws_mnt/kahless/ 开始同步

有一些关于这个错误on github 的讨论,我已经从

生成了详细的输出

gsutil -D -m rsync /mnt/archive/backups gs://aws_mnt/kahless

但由于这是 SDK 的全新安装,我无法想象线程尚未处理,所以我一定做错了什么?

罗斯

【问题讨论】:

    标签: google-cloud-storage


    【解决方案1】:

    回答您的问题:

    1. 一旦您使用 gcloud auth 配置了凭据,“gcloud auth login”命令将导致它们被选中,直到您登录到不同的凭据...并且该状态将持续存在并且不需要您通过再次浏览器会话,除非/直到您撤销这些凭据。注意:如果您正在考虑从无人参与的脚本(例如,通过 cron)运行命令,请考虑使用服务帐户凭据。更多详情请查看https://developers.google.com/cloud/sdk/gcloud/#gcloud.auth

    2. “跳过...”消息不是错误 - 它只是通知您 gsutil 正在跳过尝试下载占位符对象,因为此类对象在目录中不需要(并且会干扰)本地文件系统。我将在 gsutil 的下一个版本中更新该消息以使其更加清晰。所以,你看到的是,第二次运行gsutil rsync 比较源和目的后发现什么都没有了,正常完成了。

    【讨论】:

    • 我正在尝试将存储桶同步到一个空存储桶中,并收到有关跳过占位符的消息。目标桶是空的,所以我不知道发生了什么。我正在使用以下“gsutil -m rsync -n -p -d -r gs://bucket1 gs://bucket2” - 这失败了,但我可以在 bucket1 中同步目标目录 ....
    • Pablo@ 先生 - 当您说 rsync 命令失败时,您的意思是它没有复制对象吗?您指定了 -n 选项,这会导致 rsync 在“试运行”模式下运行。如果您关闭该选项,它应该为您复制对象。
    • 抱歉,我运行的命令没有 -n 选项。当它失败时,是的,它无法复制对象。尽管目标存储桶完全为空,但我收到了“跳过”消息。
    • Pablo@ 先生 - 请将您尝试运行的确切命令发送到 gs-team@google.com,请注意,以便我进一步调查。
    猜你喜欢
    • 2021-02-21
    • 1970-01-01
    • 2014-08-26
    • 2013-11-29
    • 2016-03-30
    • 2018-12-09
    • 2016-10-06
    • 2015-06-15
    • 2015-06-13
    相关资源
    最近更新 更多