• HOME
  • ManVSCloud
  • Dev/Update
  • AWS
  • NCLOUD
  • IT/Linux/Kubernetes
  • Certificate
  • HCX 토큰 계산기

ManVSCloud

NCLOUD

[NCLOUD] Windows에서 이미지 백업 자동화(Shell Script)

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

이전에 포스팅한 “[NCP] 네이버 클라우드에서 이미지 백업을 자동화 해보자(WITH. SHELL SCRIPT)” 는 Linux OS에서만 사용이 가능한 가이드였습니다.

오늘은 Windows OS에서 해당 스크립트를 사용하는 방법도 공유드립니다.


Download link

아래는 ncloud cli와 제가 만든 스크립트를 다운로드 할 수 있는 링크입니다.

Ncloud CLI 사용 가이드 – CLI 가이드
Ncloud CLI는 Server, Load Balancer, CDN, Auto Scaling, VPC, Server(VPC), NAS(VPC), Auto Scaling(VPC), Load Balancer(VPC), Cloud DB for MySQL(VPC), Cloud DB for REDIS(VPC), Cloud DB for MSSQL(VPC), Cloud DB for MongoDB(VPC) 서비스의 명령줄 환경을 제공합니다.
이 문서에서는 CLI 초기 설정법부터 간단한 이용방법에 대해서 설명합니다.
CLI에 관련된 각 상세 명령…
// "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

README

========================================
Updated : 2022-01-19
Maker : 김수현(ManVSCloud)
Blog : https://manvscloud.com/
========================================
############################# Basic explanation #############################
1. 00.Config를 가장 먼저 설정해주셔야합니다.
2. 02.selectiveBackup를 사용하기 위해서는 01.getBackupListConfig를 먼저 설정해주어야합니다.
3. 03.allServerBackup은 전체 백업이므로 01.getBackupListConfig 따로 설정해주지 않아도 됩니다.
## 선택 백업
# 00.Config+01.getBackupListConfig+02.selectiveBackup
## 전체 백업
# 00.Config+03.allServerBackup
############################# Version #############################
// 각 스크립트 생성(2022-01-19)
00.Config v0.1
01.getBackupListConfig v0.1
02.selectiveBackup v0.1
03.allServerBackup v0.1
############################# Function #############################
00.Config
 : 이미지 이름 및 백업 보관일을 설정하는 초기 세팅 파일입니다.
01.getBackupListConfig
 : 백업할 서버를 선택할 수 있습니다.
02.selectiveBackup
 : 01.getBackupListConfig에서 선택된 서버를 대상으로 이미지 백업을 진행합니다.
03.allServerBackup
 : 사용하고 있는 모든 서버에 대해 이미지 백업을 진행합니다.
############################# include #############################
Location : ImageBackup/include
* List
-. allInstanceNo
 : 사용하는 Server의 인스턴스 No를 불러옵니다. 
-. backupCheck
 : 미구현
-. deleteImage
 : 백업 보관일보다 오래된 이미지를 삭제합니다.
-. getInstanceNo
 : 01.getBackupListConfig 에서 선택된 서버에 대한 인스턴스 No를 불러옵니다.
-. imageList
 : 전체 이미지 리스트를 불러옵니다.
############################# Log #############################
AllBackup.log : 03.allServerBackup 실행 시 생성되는 표준 입/출력,에러 로그
CreateBackup.log : 02.selectiveBackup 실행 시 생성되는 표준 입/출력,에러 로그
DeleteBackup.log : 02,03 Backup 실행 시 include/deleteImage 에서 이미지 삭제 시 생성되는 표준 입/출력,에러 로그
========================================
========== Made in ManVSCloud ==========
========================================

A to Z

  • 백업 서버를 생성하여 이미지 백업을 관리하는 방법으로 설명 드리도록 하겠습니다.
  • Access Key를 사용하는 것은 지양하고 있으므로 A to Z 설명은 Sub Account의 Role을 서버에 적용시키는 방법으로 진행하겠습니다.
  • Classic 환경에서는 Sub Account의 Role을 서버에 적용시키는 방법이 불가능하므로 ncloud configure를 통해 AccessKey와 SecretKey를 추가해주어야합니다.
Create Server & Sub Account
https://cdn.manvscloud.com/wp-content/uploads/2022/01/19144657/00.server-1024x615.png
  1. 백업용 서버를 생성했습니다.(물론 기존에 사용하고 있는 서버에도 적용할 수 있습니다.)
https://cdn.manvscloud.com/wp-content/uploads/2022/01/19144705/01.subaccount.png
  1. Sub Account를 이용하여 위 생성한 서버에 Role(역할)을 부여할 수 있습니다.[A 서버][B 역할] (VPC Server 서비스에 대한 모든 권한)(A서버에게 B역할을 부여하면 A서버는 B역할”VPC Server 서비스를 컨트롤 할 수 있는 권한”을 얻게 된다.)
https://cdn.manvscloud.com/wp-content/uploads/2022/01/19144710/02.roles_.png
  1. 우선 역할 이름을 생성 해줍니다.
https://cdn.manvscloud.com/wp-content/uploads/2022/01/19144715/03.addrole-1024x590.png
  1. 생성한 역할로 들어가 [정책] 부분에서 해당 역할에 정책을 [추가]합니다.서버와 이미지 리스트만 보는 것이 아니라 이미지 생성 및 삭제도 필요하므로 “NCP_VPC_SERVER_MANAGER” 정책을 추가했습니다.
https://cdn.manvscloud.com/wp-content/uploads/2022/01/19144721/04.addrole2-1024x510.png
  1. [Role 소유 리소스]에서 이제 위에서 만든 리소스(서버)를 추가합니다.(해당 등록한 서버에 이 역할을 주는 것)
Git Install

윈도우 환경에서 bash 및 sh을 사용하기 위해 git을 설치하기로 했습니다.

Git – Downloading Package
Click here to download the latest (2.35.1) 64-bit version of Git for Windows. This is the most recent maintained build. It was released about 2 months ago, on 2022-02-01.
  • Portable
    (“thumbdrive edition”) 64-bit Git for Windows Portable 로 설치하였습니다.
Windows 에서 ncloud cli(cmd가 아닌 sh로 실행되도록)를 사용할 수 있도록 설정

ncloud_cli에서 압축을 풀면 cli_linux와 cli_win이 생성됩니다.

※ 쉘 스크립트에서는 ncloud를 sh를 통해 실행하는데 cli_win에서는 ncloud.cmd로 실행되어 스크립트가 정상 실행되지 않습니다.
cli_linux와 cli_win의 차이는 ncloud.sh 또는 ncloud.cmd 그리고 java가 파일이 다릅니다. windows에서 cli_linux의 ncloud를 실행하게되면 java 문제로 실행이 되지않습니다.

1. C:\Users\Administrator\cli_linux\jre8 를 C:\Users\Administrator\cli_linux\jre8_org 로 이름 변경
2. C:\Users\Administrator\cli_win\jre8 를 C:\Users\Administrator\cli_linux\jre8 로 복사
3. C:\Users\Administrator\cli_linux\ncloud 를 C:\Users\Administrator\cli_linux\ncloud_org 로 백업
4. C:\Users\Administrator\cli_linux\ncloud를 아래와 같이 수정
(뒤에 ncloud-api-cli-1.1.6-SNAPSHOT-jar-with-dependencies.jar의 버전이 바뀌는 경우가 있으므로 C:\Users\Administrator\cli_linux\lib 에서 이름 잘 확인해줄 것)

#!/bin/bash
#./jre8/bin/java -jar ./lib/ncloud-api-cli-1.1.6-SNAPSHOT-jar-with-dependencies.jar "$@"
~/cli_linux/jre8/bin/java -jar ~/cli_linux/lib/ncloud-api-cli-1.1.6-SNAPSHOT-jar-with-dependencies.jar "$@"

아래 단계로 넘어가기 전에 위에서 다운 받은 ImageBackup 스크립트가 아래 경로로 되어있는지 확인
C:\Users\Administrator\ImageBackup

C:\Users\Administrator\PortableGit\git-bash 실행하여 기본 세팅 진행

1) 00.Config를 수정해줍니다.

  • 수정해줘야할 부분
    imgName=””
    (이미지 생성 시 제일 앞에 붙는 이름입니다.)
    saveDay=“”
    (이미지 백업 보관 기간입니다.)
#!/bin/bash

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

## 이미지 이름 설정
# * 이미지 생성 시 최대 30 자 제한으로 imgName에는 10자 이하로 설정해주세요.
# * 알파벳 문자로 시작해야합니다.
# * 특수문자 "-" 순서에 따라 백업 보관일을 감지하므로 영문+숫자로만 사용해주세요.
# * 최종 이미지 생성 시 "imgName-instanceNo-생성일자"의 이름으로 생성됩니다.
imgName="wintest"

## 백업 보관일 설정
# * 일단위 설정입니다. ex) "14" (14일)
saveDay="14"

config() {

echo $saveDay > $b_HOME/tmp/saveDay.txt
echo $imgName

}

config

2) 원하는 서버만 선택해서 백업을 원하실 경우 01.getBackupListConfig, 02.selectiveBackup 를 실행하며 따로 선택없이 전체 서버를 대상으로 백업을 하실 경우 03.allServerBackup 만 사용하게 됩니다.

환경 변수 등록
  • 시스템 – 고급 시스템 설정 – [고급] 탭에서 ‘환경 변수’를 설정합니다.

위와 같이 환경 변수 설정 후 cmd에서 아래와 같이 확인이 가능합니다.

echo %NCP_imgBackup%
작업 스케줄러 등록(자동 백업)

1) 작업 스케줄러 – 동작 – 기본 작업 만들기
이름, 시간 등을 다음과 같은 예시와 같이 정해줍니다.

2) 실행 파일 및 인수 추가 설정

  • 프로그램/스크립트
    C:\Users\Administrator\PortableGit\bin\sh.exe
  • 인수 추가
    위 환경 변수에서 추가한 값 추가

3) 스케줄러 등록된 부분을 다음과 같이 확인할 수 있습니다.
또한 우클릭하여 수동으로 실행해볼 수 있습니다.

자동 실행되며 자동으로 화면은 종료됩니다.
최종 확인

위 A to Z를 따라 잘 따라오셨다면 위와 같이 정상적으로 이미지가 생성될 것입니다.


Personal Comments

따라해보시고 문제가 발생하는 부분이나 고쳐졌으면 하는 점이 있으실 경우 댓글로 남겨주시면 참고하도록 하겠습니다.

긴 글 읽어주셔서 감사합니다.


4월 2, 2022 by manvscloud
Older Posts
Newer Posts

About Me

About Me

ManVSCloud Blog, 2020-09-18 ~ AWS, NCP, AZURE, etc... Welcome to my blog!! Naver Cloud Platform Support Master ManVSCloud 입니다.

SUBCRIBE & FOLLOW

SEARCH

CATEGORY

Latest Article

  • [NCLOUD] CPU 환경에서도 가능한 딥러닝: AI-Hub와 네이버 클라우드로 이미지 분류 모델 개발 도전기
  • [NCLOUD] Cloud DB for PostgreSQL 백업 to Object Storage (관리형 데이터베이스 백업이 실패한다면?)
  • [NCLOUD] Secret Manager로 Cloud DB for PostgreSQL 패스워드 관리하기
  • [NCLOUD] 관리형 데이터베이스의 백업 실패, 더 이상 놓치지 마세요!
  • [NCLOUD] Neo4j 기반 GraphRAG 구현과 CLOVA Studio를 통한 Text2SQL 변환

TAG

AI (11) Amazon Web Service (10) API (12) AWS (27) backup (13) blog (8) Certified (6) Certified Kubernetes Administrator (7) Cloud (7) cloud functions (19) CloudNet@ (9) HyperCLOVA X (6) k8s (9) kube (7) kubernetes (15) Linux (9) manvscloud (131) manvscloud blog (10) Master (10) naver (98) naver cloud (107) Naver Cloud PlatForm (108) ncloud (103) NCP (84) object storage (13) python (16) s3 (8) security (12) Serverless (16) slack (6) Support Master (9) 교육 (9) 네이버 (94) 네이버 클라우드 (97) 네이버클라우드 (21) 네이버 클라우드 교육 (8) 네이버 클라우드 플랫폼 (84) 모니터링 (8) 백업 (12) 보안 (14) 자격증 (9) 자동화 (11) 쿠버네티스 (11) 클라우드 (10) 후기 (8)
Instagram LinkedIn
ⓒ 2020 ManVSCloud, BLOG Site. Back to top