AWS命令未在CRONTAB

时间:2016-12-07 00:07:07

标签: amazon-web-services amazon-s3 crontab aws-cli

在我继续之前,请告诉我,我尝试了stackoverflow和其他论坛中提到的所有方法,但我的CentOS 6.8服务器上没有任何工作。

以下是我在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 tab运行时没有任何工作。但是,当我通过服务器上的命令行界面运行它时,一切正常。

我的服务器已经在路径上安装了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日志中):

环境:/var/www/html/james/crons/s3_downloader.sh:权限被拒绝

1 个答案:

答案 0 :(得分:1)

您的crontab条目错误。您已将shell脚本的名称(/var/www/html/james/crons/s3_downloader.sh)作为参数传递给/usr/bin/aws

您应该直接从crontab条目中调用aws s3 sync,或者调用您的shell脚本(并调用shell脚本aws s3 sync),但您要尝试同时执行这两项操作。< / p>

因此,更改crontab条目以执行shell脚本(并确保shell脚本实际上是可执行的)。

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