2016-07-10 13 views
-2

Ich versuche, den Befehl AWS CLI Cp in einem Cron einer AWS-Umgebung auf einem Ubuntu 14.04.3 AWS EC2 zu verwenden.AWS CLI funktioniert nicht in Cron

Der EC2-Benutzer in ubuntu und lebt genannt wird/home/ubuntu

Ich habe meine aws Config-Datei in /home/ubuntu/.aws/config

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

ich meine aws Anmeldeinformationen Datei in /home/ubuntu/.aws/credentials

[default] 
aws_access_key_id=****** 
aws_secret_access_key=****** 

Meine crontab wie diese

* * * * * sh /home/ubuntu/test.sh 
sieht

Die Shell-Skript versucht, eine Testdatei über bis S3 zu kopieren ist ein Einzeiler:

/usr/local/bin/aws s3 cp test.txt s3://<my-bucket>/test.txt >> /home/ubuntu/some-log-file.log 

Der Cron führt das Skript jede Minute, aber nichts in dem S3 Eimer kopiert wird.

Wenn ich das Skript manuell auf meiner Shell ausführen, funktioniert es.

Ich versuchte (ohne Erfolg):

vor aws (/ usr/local/bin/aws) den richtigen Weg Putting

aws_access_key_id Putting und aws_secret_access_key in die .aws/config-Datei als Gut.

Putting aws env vars crontab und/oder Shell-Skript

AWS_DEFAULT_REGION=eu-central-1 
AWS_ACCESS_KEY_ID=****** 
AWS_SECRET_ACCESS_KEY =****** 

definieren HOME in der crontab und/oder Shell-Skript

HOME="/home/ubuntu" 

Putting die Config und Credential-Speicherort der Datei auf die crontab

AWS_CONFIG_FILE="/home/ubuntu/.aws/config" 
AWS_CREDENTIAL_FILE="/home/ubuntu/.aws/credentials" 

Putting PATH der Crontab und/oder das Shell-Skript

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:" 

Hat jemand eine Idee, was ich falsch machen könnte?

Antwort

0

Fand heraus, dass ich einen absoluten Pfad vergessen zu test.txt (/home/ubuntu/test.txt)

ich die Frage halten werde, weil es mehrere Optionen auflistet und immer noch nützlich für andere sein könnte.