5

私はこのスクリプトを持っています:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
SHELL=/bin/bash

# Create EBS Data snapshot
/usr/local/bin/aws ec2 create-snapshot --volume-id "vol-XXXXX" --description "test"

シェルから実行すると完全に機能しますが、Cron では何もしません。なんで?IAM ロールを使用していますが、これは重要ですか?

4

6 に答える 6

12

root ユーザーとして実行aws configureしても、資格情報を既に構成していたため、役に立ちませんでした。スクリプトは、コマンドラインから直接 root ユーザーに対して非常にうまく実行されましたが、それでも cron を介して実行されませんでした。私が受け取っていたエラーメッセージは次のとおりです。

Unable to locate credentials. You can configure credentials by running "aws configure".

助けになったのは、crontab ファイルの先頭に次の行を追加して、cron を介して実行されるすべてのスクリプトの環境を整えることでした。

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

それが誰かを助けることを願っています!

于 2015-11-09T08:33:31.253 に答える
5

わかりました、数時間後に解決策を見つけました:

ユーザー root がスクリプトを実行していましたが、AWS はこのユーザー用に構成されていませんでした。ユーザー root 用に AWS を構成するだけで済みました。

# aws configure
于 2014-09-01T20:30:07.953 に答える