2016-11-28 1 views
0

AWS 자격 증명이 필요한 root에서 대화식으로 실행할 수있는 스크립트가 있습니다. 그러나 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" 
관련 문제