2016-12-07 2 views
0

ausgeführt zu werden, bevor ich gehen, informieren Sie mich sagen, dass ich alle Methoden versucht, bei Stackoverflow erwähnt und anderen Foren, aber nichts auf meinem CentOS 6.8 Server gearbeitet.AWS-Befehle nicht auf CRONTAB

Hier ist, was ich in crontab

00 5 * * * /usr/bin/aws /var/www/html/james/crons/s3_downloader.sh 

Und s3_downloader.sh Datei voll geschrieben Inhalt ist:

#!/bin/bash 
aws s3 sync "s3://my_bucket/my_folder/" "/var/www/html/james/downloads/my_folder/"; 

Aber nichts funktioniert, wenn cron Tab läuft. Allerdings funktioniert alles gut, wenn ich es über den Befehlszeilenbildschirm auf dem Server ausführen.

Mein Server der AWS an Pfad installiert hat (Root-Benutzer verwenden): /usr/bin/aws (mit welche aws)

Hier sind die Methoden, die ich versucht habe (aber für mich nichts funktionierte):

-> den Pfad für aws in Dateiinhalt geändert:

#!/usr/bin/aws 
aws s3 sync "s3://my_bucket/my_folder/" "/var/www/html/james/downloads/my_folder/"; 

-> Hat Exporteinstellungen auf ROOT Konsole

export AWS_CONFIG_FILE="/root/.aws/config" 
export AWS_ACCESS_KEY_ID=XXXX 
export AWS_SECRET_ACCESS_KEY=YYYY 

bearbeiten: Wenn ich die Antwort von crontab in ein Protokoll

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] 
To see help text, you can run: 

    aws help 
    aws <command> help 
    aws <command> <subcommand> help 
aws: error: argument command: Invalid choice, valid choices are: 

Hier ist volle Antwort protokolliert: http://pastebin.com/XAKQUVzT

bearbeiten 2

Nach mehr Debugging, Ich kann den Fehler sehen, der herauskommt (in cron Protokoll) ist:

env: /var/www/html/james/crons/s3_downloader.sh: Zugriff verweigert

+0

Was sind die Berechtigungen ('ls -ld') auf'/var/www/html/james/crons/s3_downloader.sh' und alle enthalten Ordner? – Brian

Antwort

1

Ihre crontab-Eintrag falsch ist. Sie haben den Namen Ihres Shell-Skripts (/var/www/html/james/crons/s3_downloader.sh) als Parameter an /usr/bin/aws übergeben.

Sie sollten entweder aws s3 sync direkt aus dem Crontab-Eintrag aufrufen, oder rufen Sie Ihr Shell-Skript (und rufen Sie das Shell-Skript aws s3 sync aufrufen), aber Sie versuchen, beides zu tun.

So ändern Sie den crontab-Eintrag den Shell-Skript (und stellen Sie sicher, dass der Shell-Skript tatsächlich ausführbar ist) auszuführen.

00 5 * * * /var/www/html/james/crons/s3_downloader.sh 
+0

Auch ich es tat, ist der Fehler derselben in logs - http://pastebin.com/XAKQUVzT – Thompson

+1

Hat Ihr Shell-Skript mit #/bin/bash oder mit # Start/usr/bin/aws!? Verwenden Sie die ehemalige. – jarmod