【发布时间】:2015-01-08 00:36:41
【问题描述】:
我发现我想做的事情太难了,我肯定做错了。
我有一个只有根永久磁盘的 Compute 实例。我只是在上面运行了一个小的 Wordpress 服务器(nginx+php+local mysql),所以我没有添加任何外部组件。目前这一切都是自给自足的。
现在我只想运行此实例的定期备份。我了解到这是通过快照完成的,我什至对此进行了测试并使用快照启动了一个新实例。有道理——现在我只需要自动化它。
我有一个使用 gcutil 拍摄快照和轮换备份的 shell 脚本。当我通过 SSH 连接到我的实例时,该脚本运行良好。现在我只想让它作为 CRON 作业运行。当我为登录的 SSH 用户创建一个 crontab 时,该作业将运行。但我想让工作用完 /etc/cron.daily - 它以 root 身份运行。当 cron 启动时,它最终会失败:
You are not currently logged in. To authenticate, run
$ gcloud auth login
当我 sudo 进入 root 并尝试 gcloud auth 登录时,它警告我应该使用服务帐户。我已经尝试将 gcloud config set account 设置为自动创建的服务帐户,并且我也尝试创建新的服务帐户。这些都不起作用-我不断收到身份验证错误。有很多文档对此进行了说明-足以使它看起来像拼图一样可以拼凑在一起,但是我发现的所有内容都太模糊了,无法简单地告诉我如何创建和/或使用服务帐户来调用 GCE一个 CRON 作业。
我简直不敢相信它这么难 - 我是一个非常精明的技术人员。我只是想以错误的方式使用 GCE 吗?
最后我所做的只是忽略了警告并验证到我从 root 登录的帐户中。 CRON 作业现在将运行,但我不确定此登录的持久性如何。是永久的吗?或者它会超时并且备份开始失败?我确实让它发送电子邮件警报,所以至少我会知道它是否失败。
很明显,我有一个很大的学习曲线要经历。
这就是积累-基本上我有两个问题:
1- 任何指向在 shell 脚本/CRON 作业中通过命令行工具创建和/或使用服务帐户的显式步骤的指针?
2- 我是不是按照 Google 的方式来做,还是在这里遗漏了什么?
【问题讨论】:
标签: cron backup google-compute-engine