2016-11-28 7 views
0

私はrootからインタラクティブに実行できるスクリプトをAWS資格情報が必要です。しかし、私がcrontab経由でこのスクリプトを実行すると、No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials/rootエラーが発生します。このエラーは、aws資格情報に関連しています。私はcrontabで他のスクリプトを実行しています。Crontabに資格がありません

のcrontabは次のようになります。

SHELL=/bin/bash 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
* * * * * root echo “28/11 test” >> /var/log/cron.log 2>&1 
35 14 * * * root /usr/bin/python /full_path/api_60.py && root /usr/bin/python /full_path/api_300.py && root /usr/bin/python /full_path/api_3600.py 
40 14 * * * root /usr/bin/python /full_path/daily_push_s3.py 

私はSHELLPATH変数は、スクリプトが確実に動作し、対話型シェルからそれらを見つけるためにechoを使用して正しかったことを確認しました。

awsは、~/.awsで設定ファイルまたは資格情報ファイルを検索しています。

このようにして、設定ファイルと資格情報ファイルを~/.aws/の代わりに/root/.aws/に移動し、ENV HOME=/rootと設定しました。

資格情報:

[default] 
region=eu-west-1 
output=json 

設定:

[default] 
aws_access_key_id=XXX 
aws_secret_access_key=XXX 

環境の違いは何ですか?

+0

資格情報ファイルを移動しましたか? – helloV

+0

あなたの 'config'ファイルや' credentials'ファイルに何が入っているかわからないと、コメントするのが難しいです。 '〜/ .aws'を'/root/.aws'に移動/コピーする必要があります。 'config'と' credentials'の両方が必要です。 – helloV

+0

ありがとう@helloV。私はいくつかの編集をしました。これは役に立ちますか? – LearningSlowly

答えて

0

crontab環境は事前定義された環境よりも優先されるため、そこに資格情報を直接追加してすべて作業しました。

HOME=/root 
SHELL=/bin/bash 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
AWS_CONFIG_FILE=“/path/config” 
AWS_ACCESS_KEY_ID="XXX" 
AWS_SECRET_ACCESS_KEY="XXX" 
関連する問題