2016-12-07 149 views
0

在我繼續之前,請讓我告訴我,我嘗試了在stackoverflow和其他論壇中提到的所有方法,但在我的CentOS 6.8服務器上沒有任何工作。在CRONTAB上沒有執行AWS命令

以下是我已經寫在crontab中

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

而且s3_downloader.sh文件的完整內容是:

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

但當cron的選項卡運行時,它沒有什麼工作。但是,當我通過服務器上的命令行屏幕運行它時,一切正常。

我的服務器上安裝了AWS的路徑(使用root用戶):在/ usr/bin中/ AWS(使用其AWS

這是我曾嘗試的方法(但沒有爲我工作):

- >改變了AWS的路徑文件內容:

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

- >難道ROOT控制檯上導出設置

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

編輯: 當我記錄從crontab的響應到日誌

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: 

這裏充滿響應:http://pastebin.com/XAKQUVzT

編輯2

更多的調試之後,我可以看到出現的錯誤(在cron日誌中)是:

ENV:/var/www/html/james/crons/s3_downloader.sh:權限被拒絕

+0

'/ var/www/html/james/crons/s3_downloader.sh'和所有包含文件夾的權限('ls -ld')是什麼? – Brian

回答

1

你的crontab條目是錯誤的。您已將您的shell腳本的名稱(/var/www/html/james/crons/s3_downloader.sh)作爲參數傳遞給/usr/bin/aws

您應該直接從crontab條目中調用aws s3 sync,或者調用您的shell腳本(並使shell腳本調用aws s3 sync),但是您正在嘗試執行這兩個操作。

因此,更改crontab條目以執行shell腳本(並確保shell腳本實際上是可執行的)。

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

即使我做到了,日誌中的錯誤也一樣 - http://pastebin.com/XAKQUVzT – Thompson

+1

您的shell腳本是否以#!/ bin/bash或#!/ usr/bin/aws開頭?使用前者。 – jarmod