for(8)
-
ECR lifecycle policy 전체 repository 적용
- 개요 ECR Repository를 생성하면 기본적으로 LifeCycle이 적용되지 않으며, 해당 메뉴까지 나눠져 있어서 그냥 데이터가 계속 쌓이면서 과금이 된다. 아래는 계정의 전체 ECR에 untagged image 15개 이상 부터 삭제하라는 LifeCycle을 일괄 적용하는 스크립트이다. - 스크립트 ( ecr_retention_put.sh ) #!/bin/bash for i in $(aws ecr describe-repositories --query 'repositories[*].repositoryName[]' --output text) do aws ecr put-lifecycle-policy --repository-name $i --lifecycle-policy-text "file://pol..
2023.06.28 -
tg_attr_deg_delay.sh
- 개요 target group을 생성하면 default deregistration delay timeout이 300초 이므로, 줄여서 사용하는 것을 추천한다. 기본적으로 TG가 300초 동안 기다렸다가 deregistration이 되어서 비용이 많이 발생하므로 특별한 이슈가 없다면 30초까지 줄이는 것을 추천한다. 기 존재하는 TG의 timeout 값을 확인하는 스크립트는 아래와 같다. - 스크립트 #!/bin/bash echo "ELB attributes" for i in $(aws elbv2 describe-target-groups --query TargetGroups[].TargetGroupArn --output text) do echo $i aws elbv2 describe-target-grou..
2022.12.07 -
retention 없는 CloudWatch logs의 log groups
- 개요 테라폼이나 AWS Web console에서 AWS 리소스를 생성할 때 CloudWatch Logs에 log group이 retention 설정 없이 생성되는 경우가 많으며 관리가 안돼서 비용이 과금되는 경우가 많다. 아래는 기 생성된 log groups의 retention을 확인하고 적용하는 명령어를 자동 생성해 주는 스크립트이다. - 스크립트 #!/bin/bash echo "CloudwatchLog without Retention Settings" for i in $(aws logs describe-log-groups --query logGroups[*].logGroupName[] --output text) do CloudwatchLogRetention=$(aws logs describe-lo..
2022.12.07 -
codepipeline stage status
- 개요 CodePipeline의 상태 확인을 할 수 있는 스크립트이다 - 스크립트 #!/bin/bash echo "CodePipeline Deploy Status" for i in {0..2}; do for codepipeline in $(aws codepipeline list-pipelines --query pipelines[].name --output text) do stage=$(aws codepipeline get-pipeline-state --name $codepipeline --query 'stageStates[].latestExecution[].status | '[$i]'' --output text) if [[ $stage == "Succeeded" ]] || [[ $stage == "No..
2022.11.21 -
ECR repository life-cycle-policy 확인
- 개요 ECR에서 repository를 생성할 경우 LifeCyclePolicy가 기본적으로 없이 생성되므로 과금의 원인이 된다. 아래는 기 존재하는 repository의 LifeCyclePolicy가 있는지 확인해주는 스크립트 이다 - 스크립트 #!/bin/bash for i in $(aws ecr describe-repositories --query 'repositories[*].repositoryName[]' --output text) do ecr=$(aws ecr get-lifecycle-policy --repository-name $i 2>/dev/null) if [ $? == 0 ]; then echo good else echo $i has no life cycle policy fi done
2022.11.04 -
같은 커맨드 여러 번 반복해서 실행
- 개요 bash에서 같은 명령어를 수 차례 반복하는 테스트는 많이 하므로 아래 스크립트 예제로 간단히 정리 했다. - 스크립트 ## 20번 반복 for i in `seq 20`; do echo hello; done ** seq뒤에 숫자로 반복 횟수 결정
2022.11.01 -
AWS ECS service last event
- 개요 ECS의 Service의 상태를 확인하는 가장 효과적인 방법은 최근 event 를 확인하는 것이다. 아래는 사용하고 있는 전체 ECS Service의 마지막 event log를 확인하는 스크립트 이다. - 스크립트 #!/bin/bash declare -a ecscluster=$(aws ecs list-clusters | awk -F / '{print $2}' | tr -d '",' | awk NF) region=`aws configure get profile.default.region` for i in ${ecscluster[@]} do for service in $(aws ecs list-services --cluster $i | awk -F / '{print $3}' | tr -d '",' ..
2022.10.12 -
대상 서버 파일시스템중에 사용량이 80%이 넘는 목록 확인
- 개요 Linux 파일 시스템을 용량 관리는 상당히 중요하다. 아래는 대상 서버에 mount 되어 있는 파일시스템중에 80%가 넘는 목록을 확인하는 스크립트 이다. - 스크립트 #!/bin/bash host_list=(host1, host2) for i in ${host_list[@]} do v=$(ssh $i 'df -t xfs -t ext4 --output=target,pcent | egrep "([80][0-9]|[90][0-9]|100)%" | grep -v loop' 2>/dev/null ) if [ $? == 0 ]; then echo -e $i, $v else echo pass fi done - 참고 ssh options https://happyengine.tistory.com/47
2022.10.06