我正在尝试实现一个自动代码来通过 Crontab 关闭和启动我的 Google Cloud 帐户中的 VM 实例。操作系统是 Ubuntu 12 lts,并安装了 Google 服务帐户,因此它可以处理我的 Google 云帐户上的读/写。
我的实际代码在此文件 /home/ubu12lts/cronfiles/resetvm.sh 中
#!/bin/bash
echo Y | gcloud compute instances stop my-vm-name --zone us-central1-a
sleep 120s
gcloud compute instances start my-vm-name --zone us-central1-a
echo "completed"
当我像这样调用上面的文件时,
$ bash /home/ubu12lts/cronfiles/resetvm.sh
它工作完美并且能完成工作。
现在我想在 cron 中设置它,这样它就会每小时自动执行一次。所以我做了
$ sudo crontab -e
并在 cron 中添加了这段代码
0 * * * * /bin/sh /home/ubu12lts/cronfiles/resetvm.sh >>/home/ubu12lts/cron.log
并使脚本可执行
chmod +x /home/ubu12lts/cronfiles/resetvm.sh
我还通过添加使用示例消息创建 .txt 文件的示例命令来测试 crontab,它运行得很好。
但上述 gcloud SDK 代码无法通过 cron 运行。 VM 不会停止,也不会在我的 GC 计算引擎中启动。
有人可以帮忙吗?
太感谢了。
您已将条目添加到 root 的 crontab 中,而您的 Cloud SDK 安装是为其他用户设置的(我猜是 ubu121lts)。
您应该使用以下命令在 ubu121lts 的 crontab 中添加条目:
crontab -u ubu121lts -e
此外,您的条目当前计划在每小时的第 0 分钟运行。这就是你的意图吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)