테스트 사이트 - 개발 중인 베타 버전입니다

내 계정 파일, DB 백업 스크립트

· 2년 전 · 717

 

아래 코드를 backup.sh  내 계정에 업로드 하세요.

www 또는 public_html 안에 넣으면 안됩니다.  웹폴더 상위 폴더에 넣으세요.

ssh 접속해서 chmod +x ./backup.sh 해주세요. 

하단 소스 파일에 백업할 대상의 상대 경로 또는 절대 경로를 넣어 주시고 저장될 경로도 넣어주세요.

DB 정보 넣어주시고  저장 후 콘솔에서

./backup.sh 하시면 됩니다.  이 때 DB 비번 물어보니 넣어주세요. 

 

 

[code]

#!/bin/bash
# Variables
BACKUP_DIR="./public_html"  # 백업할 디렉토리 경로
SAVE_DIR="./"  # 저장될 경로
SAVE_FILE="backup_$(date +%Y%m%d).tar"  # 파일명에 날짜 추가
DB_BACKUP_FILE="db_backup_$(date +%Y%m%d).sql"  # DB 백업 파일명에 날짜 추가
DB_HOST="localhost"  # DB host
DB_USERNAME="DB아이디"  # DB username
DB_NAME="DB명"  # DB name
SPLIT_SIZE="500M"  # 분할 압축 크기 지정

# Check if source directory exists
if [ ! -d "$BACKUP_DIR" ]; then
  echo "Source directory '$BACKUP_DIR' does not exist. Exiting."
  exit 1
fi

# Check if save directory exists
if [ ! -d "$SAVE_DIR" ]; then
  echo "Save directory '$SAVE_DIR' does not exist. Exiting."
  exit 1
fi

# DB backup
echo "Enter your DB password:"
read -s DB_PASS
mysqldump --no-tablespaces -h "$DB_HOST" -u "$DB_USERNAME" -p"$DB_PASS" "$DB_NAME" > "$DB_BACKUP_FILE"

if [ $? -eq 0 ]; then
  echo "Database backup was successful."
  # Compress the DB dump file
  gzip "$DB_BACKUP_FILE"
  echo "Database backup file has been compressed."
else
  echo "Database backup failed. Exiting."
  exit 1
fi

# File backup
SAVE_PATH="${SAVE_DIR}/${SAVE_FILE}"
tar --exclude='sess_*' -cvf "$SAVE_PATH" -C "$BACKUP_DIR" .

if [ $? -eq 0 ]; then
  echo "File backup was successful."
  # Split the tar file into multiple parts of 500MB each
  split -b "$SPLIT_SIZE" -d "$SAVE_PATH" "${SAVE_DIR}/tar_"
  echo "File backup has been split."
else
  echo "File backup failed. Exiting."
  exit 1
fi
 

[/code]

 

chatGPT와 대화? 하면서 만들어 봤습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
17191
17162
17160
17158
17156
17155
17153
17151
17145
17135
17131
17125
17114
17107
17099
17096
17089
17088
17082
17079
17078
17077
17070
17068
17067
17063
17060
17048
17045
17044