본문 바로가기

리눅스

배포 스크립트 / jq, tr, for , scp

json(JavaScript Object Notation) : 구조화된 데이터를 간결하게 표현가능한 방식

jq : json query 툴, 커맨드 라인 유틸리티

tr: translate or delete 하는 명령어, -d(--delete) 는 삭제를 의미

For 반복문 사용 방법

      for 변수 in 범위

      do

      # 명령

      done

 

#!/bin/bash
SERVER=$(kubectl get nodes -o json | jq '.items[] | .status .addresses[] | select(.type=="ExternalIP") | .address' | tr -d ' " ')
for server in $SERVER
do
  scp -i ~/aws_rsa file.txt ec2-user@$server:/tmp/
  #cloudshell 상에 있는 각자의 비밀키 경로
done

 

--------------------------------------------------------------------------------------------------------

kubectl get nodes -o json / json 형태로 노드 정보 표시 

 

jq '.items[] | .status .addresses[] | select(.type=="ExternalIP") | .address' | tr -d ' " ')

json 형식 중 ExternalIP 의 addresses 추출 tr -d 로 쌍따움표 " 제거

 

scp -i ~/aws_rsa file.txt ec2-user@$server:/tmp/

- SCP 는 secure copy  복사 명령어, jq 에서 나온 ip 서버의 tmp 경로에 file.txt 복사

 

chmod +x deploy.sh 권한 추가