2017年6月14日 星期三

gsutil + cronjob 自動下載 Google Play 報告

替客人開發的應用程式上架快將一個月了,同事每隔天便需要把最新的下載報告交給客戶;而這個報告目前只有我才能拿到手。為免同事因為我在忙而無法準時提交報告,於是很想把事情自動化。利用 Crontab + gsutil 可以達成!

首先編寫了一個 Bash 程式,原因是 gsutil 是 shell 指令,它能從 Google Cloud Storage 下載報告到本地;而我又想把這些報告以電郵附件方式傳送出去,這個部份會以 PHP 程序執行,能把這些東西揍在一起的,最好是用 Bash 了。

有了 Bash 程式,之後就是設定 Crontab 按時執行:

這裡遇到一個問題,當我 SSH 進入伺服器,手動執行 download.sh 時是一切正常;但當用 Crontab 執行時,卻出現「401 Anonymous users does not have storage.objects.list access to bucket 」錯誤。努力除錯後,發現「HOME=/root」是解決問題的關鍵,需要格外留意。

沒有留言: