Search

UseFul Script

Alarm Modify
export PROJECT_NAME="apdev" export ALARM_NAME=$(aws cloudwatch describe-alarms --query "MetricAlarms[?starts_with(AlarmName, 'TargetTracking-${PROJECT_NAME}-node-') && contains(AlarmName, 'AlarmLow')].AlarmName" --output text) export ACTION_NAME=$(aws cloudwatch describe-alarms --alarm-names "$ALARM_NAME" --query "MetricAlarms[0].AlarmActions[0]" --output text) export CLUSTER_NAME=$(aws cloudwatch describe-alarms --alarm-names "$ALARM_NAME" --query 'MetricAlarms[0].Dimensions[?Name==`ClusterName`].Value' --output text) aws cloudwatch put-metric-alarm \ --alarm-name "$ALARM_NAME" \ --metric-name "CapacityProviderReservation" \ --namespace "AWS/ECS/ManagedScaling" \ --statistic "Average" \ --period 60 \ --evaluation-periods 1 \ --datapoints-to-alarm 1 \ --threshold 100 \ --comparison-operator "LessThanThreshold" \ --alarm-actions "$ACTION_NAME" \ --dimensions "Name=CapacityProviderName,Value=EC2" "Name=ClusterName,Value=$CLUSTER_NAME" \ --actions-enabled
Shell
복사
ASG Modify
aws autoscaling put-lifecycle-hook \ --lifecycle-hook-name ecs-managed-draining-termination-hook \ --auto-scaling-group-name $(aws autoscaling describe-auto-scaling-groups \ --query "AutoScalingGroups[?starts_with(AutoScalingGroupName, 'apdev-node')].AutoScalingGroupName" \ --output text | head -1) \ --heartbeat-timeout 300
Shell
복사
Delete Processlist Script
#!/bin/bash MYSQL_USER="admin" MYSQL_PASSWORD="password" MYSQL_HOST=$(aws rds describe-db-instances --query "DBInstances[?DBInstanceIdentifier=='apdev-rds-instance'].Endpoint.Address" --output text) MYSQL_PORT="3307" MYSQL_DBNAME="dev" while : do mysql -h $MYSQL_HOST -u $MYSQL_USER -P $MYSQL_PORT -p$MYSQL_PASSWORD -D $MYSQL_DBNAME -e "SELECT * FROM information_schema.processlist WHERE COMMAND = 'Sleep' AND USER NOT LIKE '%rds%' AND USER NOT LIKE '%event_scheduler%';" | egrep 'Sleep|Lock' | awk '{print "kill "$1";"}' > /tmp/kill.txt mysql -h $MYSQL_HOST -u $MYSQL_USER -P $MYSQL_PORT -p$MYSQL_PASSWORD -D $MYSQL_DBNAME < /tmp/kill.txt mysql -h $MYSQL_HOST -u $MYSQL_USER -P $MYSQL_PORT -p$MYSQL_PASSWORD -D $MYSQL_DBNAME -e "SHOW processlist;" sleep 60 done
Shell
복사