[shell script] 과거 이력과 비교해 변경점을 찾는 스크립트(EC2 인스턴스)

HYEOB KIM·2022년 5월 30일
1

Shell

목록 보기
68/71

문제

  • AWSEC2 인스턴스 리스트를 구글 시트에 정리하면서 업데이트 시 인스턴스의 어떤 부분에서 업데이트가 발생했는지 쉽게 알 수 있도록 하기

기존 파일과 새로 생성된 파일 간에 내용 비교

#!/bin/bash

read -p "AWS Profile: " profile_name

# 유효한 프로파일이 아니라면 스크립트 실행 종료
if [[ -z $profile_name ]]
then
        echo "Please type vaild profile..."
        exit 0
fi

echo "using AWS_PROFILE '$profile_name'...\n"

# 기존의 파일을 old로 변경        
old_file_path=./${profile_name}_ec2_list_update_old
file_path=./${profile_name}_ec2_list_update
mv $file_path $old_file_path

# 프로파일 환경변수 지정
export AWS_PROFILE=$profile_name

# EC2의 서버 리스트 가져오기
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].{instance_id: InstanceId, name: Tags[?Key=='Name'] | [0].Value, public_ip: PublicIpAddress, private_ip: PrivateIpAddress, state: State.Name, access_lev: Tags[?Key=='access_lev']|[0].Value} | sort_by([], &private_ip)" \
--output table > $file_path

# 기존 파일(old)과 새로 생성된 파일 내용의 차이점 출력 
diff -dsu $old_file_path $file_path

결과 테스트

기존에 서버가 running 상태였다가 stopped 상태로 바꼈다면 스크립트를 실행 시 아래와 같이 나타납니다.

  • -: 삭제된 내용을 의미합니다.
  • +: 추가된 내용을 의미합니다.
profile
Devops Engineer

0개의 댓글