[DevOps] 3. 데이터 백업 (스크립트)

GisangLee·2025년 7월 9일
0

devops

목록 보기
3/11

실수로 파일을 지워버렸다...? 그럴 땐 이미 늦었다

이제부터 날짜별로 백업하자

주요 명령어

if [조건식]
then
    ....
elif [조건식]
then
    ....
else
    ....
fi
while [조건]
do
    명령
done

스크립트

#!/bin/bash

# =============== 🎨 스타일 함수 ================
bold=$(tput bold)
normal=$(tput sgr0)
green="\033[1;32m"
red="\033[1;31m"
yellow="\033[1;33m"
blue="\033[1;34m"
cyan="\033[1;36m"
reset="\033[0m"

function title()   { echo -e "${blue}${bold}🔷 $1${reset}"; }
function success() { echo -e "${green}$1${reset}"; }
function error()   { echo -e "${red}$1${reset}"; }
function warn()    { echo -e "${yellow}⚠️  $1${reset}"; }
function info()    { echo -e "${cyan}ℹ️  $1${reset}"; }

# =============== 📦 백업 시작 ================
today=$(date +%Y_%m_%d)
backup_file_name="backup_$today.tar.gz"


# ✅ 백업할 여러 디렉토리
backup_target_dirs=(
  "dir1"
  "dir2"
)
backup_output_directory="backup_dir"       # 백업 저장 경로
backup_path="$backup_output_directory/$backup_file_name"


echo
title "📦 Backup Script"
echo "📅 Date         : $today"
echo "📂 Target Dirs  :"
for t in "${backup_target_dirs[@]}"; do echo "    📁 $t"; done
echo "💾 Output Path  : $backup_path"
echo "─────────────────────────────────────────────"



# ✅ 경로 확인
for dir in "${backup_target_dirs[@]}"; do
  if [ ! -d "$dir" ]; then
    error "대상 디렉토리가 존재하지 않음: $dir"
    exit 1
  fi
done


# ✅ 압축 수행
echo
title "🚀 압축 중..."

tar -czf "$backup_path" "${backup_target_dirs[@]}"

if [ $? -eq 0 ]; then
  success "압축 성공!"
  info "🔖 생성된 파일: $backup_path"
else
  error "압축 실패!"
fi

echo
title "🏁 백업 스크립트 종료"
echo
profile
포폴 및 이력서 : https://upbeat-suede-20b.notion.site/2265782662ce8071aeb7f67163e63467?source=copy_link

0개의 댓글