0
我创建一个简单的bash脚本,将定期检查的mdadm和汇报的CloudWatch与数值:CloudWatch的错误bash脚本
#!/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
我知道状态可能是罪魁祸首,但有CREA一个更好的方法处理我所做的条件并实际将结果提交给CloudWatch?
你想运行储存在变量'SEND_RESPONSE'中的命令吗? – Inian
不,命令运行。但它反驳了我在问题中发布的错误消息。我试图找出脚本中可能出现的错误 – ryekayo
当您定义它时,只会评估一次“SEND_RESPONSE”。 – jordanm