2014-01-23 48 views
4

我有一個crontab,用於啓動運行AWS CLI命令「aws ec2 create-snapshot」的PHP腳本。aws-cli 1.2.10 cron腳本失敗

當我通過命令行運行腳本時,php腳本成功地通過aws命令將一個JSON字符串返回給PHP。但是當我設置一個crontab來運行php腳本時,aws命令不會返回任何東西。

crontab與我自己在命令行上運行PHP腳本時的用戶一樣運行,所以我有點難住?

回答

6

我有和運行ruby腳本(ruby script.rb)相同的問題。 我用完整路徑替換紅寶石(/sources/ruby-2.0.0-p195/ruby),它工作。 在你的情況下,用完整路徑替換「aws」。找到它: find/-name「aws」

+0

非常感謝你非常感謝!這正是它的意思。我被困在那裏兩個小時。 –

+0

歡迎您! –

1

必須指定aws命令的完整路徑的原因是因爲默認情況下cron運行的環境非常有限。我就遇到了這個問題爲好,並通過添加這個到cron腳本調試它:

set | sort > /tmp/environment.txt 

我然後通過cron和通過命令行(重命名運行之間的環境文件),並比較它們運行該腳本。這讓我看到我需要設置PATH和AWS_DEFAULT_REGION環境變量。這樣做後,腳本工作得很好。

+0

感謝您分享您的調試方法 –