我正在尝试自动将db的备份上传到gcp存储桶。
我现在正在使用Google云上的虚拟机。我想创建一个SQL作业,该作业将运行一个cmd
命令,该命令会将备份文件上传到存储桶。
当我在cmd中手动运行命令时,它可以工作,但是当我通过sql agent运行时,它却不能。作业返回成功,但是并没有真正上传它。
第一个问题是,运行计算机的Google服务无权写入存储桶;我解决了。我还使用gutils在ouath下为用户创建了一个boto文件。
我尝试为gsutils添加-D flag
进行调试,如果我理解正确的话,它找不到配置文件。 SQL代理作业设置为我是所有者。 sql代理服务由网络服务运行。
有什么想法为什么不上传数据?
据我了解,gsutil已将nbot设置为正确的projectID! gcloud设置为正确的projectid。我不知道如何将gsutil设置为我的projectid。我查看了Boto文件,但找不到projectID配置。
这是来自随后命令的调试输出:
正在运行的命令:C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform / gsutil \ gsutil -o GSUtil:default_project_id = xxxx-246709 -o GoogleCompute:service_account =默认-D -m rsync -r D:\ backup \ gs:// xxx config_file_list:[u'找不到配置']配置:[('debug', '0'),('working_dir','/ mnt / pyami'),
答案 0 :(得分:0)
我还使用gsutil在使用者下创建了一个boto文件
该文件在哪里?如果位于<path to your home directory>\.boto
,则Boto库将自动加载它。如果在Boto检查运行时的已知位置之一不,您需要在运行gsutil告诉Boto在哪里找到配置之前设置BOTO_CONFIG
环境变量。您可以通过运行gsutil -D version
并查看config_file_list
行来找到配置的路径。