1
我想實現一個自動代碼關閉並通過Crontab在我的Google Cloud帳戶中啓動虛擬機實例。操作系統是Ubuntu 12 lts,並且安裝有Google服務帳戶,因此它可以處理我的Google雲帳戶上的讀/寫操作。谷歌雲SDK代碼執行通過cron
我實際的代碼是在這個文件/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計算引擎中停止啓動。
任何人都可以幫忙嗎?
非常感謝。
順便說一下,Gclcoud會在$ HOME/.config/gcloud和gcloud下的文件中查找緩存的憑據以及存儲的屬性(如項目),有時可以使用$ HOME取消設置。您可能需要在腳本中設置$ HOME來補償或使用$ GCLOUD_CONFIG來選擇完全爲腳本使用的其他配置目錄。) –
感謝您的嘗試。是的,我在ubu12ots用戶中也添加了相同的cron,但沒有運氣。是的,我希望它每小時運行第0分鐘。 – Ali
你可以看看cron日誌,看看是否有任何錯誤? – Vilas