0
私は日常のmdadmをチェックして、数値をバックCloudWatchのに報告するシンプルなbashスクリプトを作成しています:CloudWatchのエラー
#!/bin/bash
## CHECKING RAID STATUS AND SUBMITTING RESULTS TO CLOUDWATCH ##
## 0 = Good, 1 = Bad, 2 = Still bad, needs investigating ##
HECK_RAID=`mdadm -D /dev/md1 | grep "State : [a-zA-Z]"`
SEND_RESPONSE=`aws cloudwatch put-metric-data --metric-name RAID-STATUS --namespace MONGODB --value "$STATUS" --dimensions InstanceID="$INSTANCEID" --region us-east-1`
INSTANCEID=$(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id)
if [[ $CHECK_RAID =~ [Cc]lean ]]; then
STATUS=0
$SEND_RESPONSE
elif [[ $CHECK_RAID =~ [Ff]ailed ]]; then
STATUS=1
$SEND_RESPONSE
else
STATUS=2
$SEND_RESPONSE
fi
問題は、私がテストするためのスクリプトを実行したとき、私はこれを取得、あります:リストのparam要素のための
無効な値(「」):タイプのリストのMetricData
私はSTATUSが犯人かもしれない知っているが、クレアのより良い方法があります私が作った条件を聞いて、実際に結果をCloudWatchに提出していますか?
変数 'SEND_RESPONSE'に格納されたコマンドを実行しますか? – Inian
いいえ、コマンドが実行されます。しかし、それは質問に投稿したエラーメッセージを吐き返す。私はスクリプトで何が間違っているのか理解しようとしています。 – ryekayo
'SEND_RESPONSE'は、あなたが定義したときに一度しか評価されません。 – jordanm