Browsing Tag

백업

Dev

[NCP] 이미지 백업 자동화(SHELL SCRIPT) UPDATE v0.2

안녕하세요 ManVSCloud 김수현입니다.

이전에 공유드린 [NCP] 이미지 백업 자동화(SHELL SCRIPT) 사용 시 버그가 발견되어 소스 수정 후 재배포 되었습니다.

다운로드 링크는 따로 변경되지 않았습니다.

// "ncloud cli" 다운로드 링크
https://www.ncloud.com/api/support/download/files/26

// manvscloud의 "네이버 클라우드 이미지 백업 스크립트(VPC용)" 다운로드 링크
http://file.manvscloud.com/nCloudimgScript.zip

// manvscloud의 "네이버 클라우드 이미지 백업 스크립트(클래식용)" 다운로드 링크
http://file.manvscloud.com/Classic_nCloudimgScript.zip

Bug / History

  • 버그 내용
    : 동일한 단어가 들어간 서버 이미지 백업 시 중복으로 이미지가 생성되는 부분이 발견되어 수정하였습니다.
ex) 
첫번째 서버명 : manvscloud
두번째 서버명 : manvscloud2

manvscloud 서버 백업 지정 시 manvscloud 서버만 백업되는 것이 아니라 manvscloud2서버도 함께 이미지 백업이 생성되는 부분이 발견됨.

// 버그 수정 후 테스트 결과 //
manvscloud 백업 시 manvscloud만 백업되도록 설정 완료.
manvscloud2를 백업하려면 manvscloud2로 지정되도록 구분됩니다.
  • include/getInstanceNo 파일의 소스가 변경되었습니다.
############################# Version #############################
// 각 스크립트 생성(2022-01-19)
00.Config v0.1
01.getBackupListConfig v0.1
02.selectiveBackup v0.1
03.allServerBackup v0.1

// 스크립트  수정(2022-06-15)
include/getInstanceNo v0.2

Classic

※ 기존 getInstanceNo

#!/bin/bash

## 경로 설정
CLI=~/cli_linux/ncloud
b_HOME=~/cImageBackup
b_INCLUDE=$b_HOME/include


## getInstanceNo
serverList=(`cat $b_HOME/tmp/BackupServer.txt`)

echo "백업 대상을 확인 중입니다. 잠시만 기다려주세요..."

getInstanceNo() {

    for i in ${!serverList[@]};
    do

        printf "%s\t" `$CLI server getServerInstanceList --searchFilterName "${serverList[i]}" | grep serverInstanceNo | awk '{print $2}' | tr -d '",'`

    done
}


getInstanceNo > $b_HOME/tmp/BackupNo.txt

echo "백업 대상이 확인되었습니다."

※ 변경 후 getInstanceNo

#!/bin/bash

## 경로 설정
CLI=~/cli_linux/ncloud
b_HOME=~/cImageBackup
b_INCLUDE=$b_HOME/include


## getInstanceNo
serverList=(`cat $b_HOME/tmp/BackupServer.txt`)

echo "백업 대상을 확인 중입니다. 잠시만 기다려주세요..."

getInstanceNo() {

    for i in ${serverList[@]};
    do

        $CLI server getServerInstanceList --searchFilterName "$i" | jq '.getServerInstanceListResponse.serverInstanceList[]' |  jq --arg j $i 'select(.serverName == $j)' |  jq '.serverInstanceNo' | tr -d '",'

    done
}


getInstanceNo > $b_HOME/tmp/BackupNo.txt

echo "백업 대상이 확인되었습니다."


VPC

※ 기존 getInstanceNo

#!/bin/bash

## 경로 설정
CLI=~/cli_linux/ncloud
b_HOME=~/ImageBackup
b_INCLUDE=$b_HOME/include


## getInstanceNo
serverList=(`cat $b_HOME/tmp/BackupServer.txt`)

echo "백업 대상을 확인 중입니다. 잠시만 기다려주세요..."

getInstanceNo() {

    for i in ${!serverList[@]};
    do

        printf "%s\t" `$CLI vserver getServerInstanceList --serverName "${serverList[i]}" | grep serverInstanceNo | awk '{print $2}' | tr -d '",'`

    done
}


getInstanceNo > $b_HOME/tmp/BackupNo.txt

echo "백업 대상이 확인되었습니다."

※ 변경 후 getInstanceNo

#!/bin/bash

## 경로 설정
CLI=~/cli_linux/ncloud
b_HOME=~/ImageBackup
b_INCLUDE=$b_HOME/include


## getInstanceNo
serverList=(`cat $b_HOME/tmp/BackupServer.txt`)

echo "백업 대상을 확인 중입니다. 잠시만 기다려주세요..."


getInstanceNo() {

    for i in ${serverList[@]};
    do

         $CLI vserver getServerInstanceList --serverName "$i" | jq '.getServerInstanceListResponse.serverInstanceList[]' |  jq --arg j $i 'select(.serverName == $j)' |  jq '.serverInstanceNo' | tr -d '",'

    done
}

getInstanceNo > $b_HOME/tmp/BackupNo.txt

echo "백업 대상이 확인되었습니다."

Personal Comments

추가 버그 발견 시 공유주시면 업데이트 진행하도록 하겠습니다.

감사합니다.