백업 스크립트 · 1 min read · Jan 30, 2026

모든 MySQL 데이터베이스를 백업하고 각 테이블을 개별 파일로 저장한 후 원격 FTP에 업로드하는 셸 스크립트

모든 MySQL 데이터베이스를 백업하고 각 테이블을 개별 파일로 저장한 후 원격 FTP에 업로드하는 셸 스크립트

이 스크립트는 모든 데이터베이스의 각 테이블(테이블당 하나의 파일)의 백업을 생성하고, 압축하여 원격 FTP에 업로드합니다.

먼저 선택 및 테이블 잠금 권한이 있는 MySQL 사용자를 생성합니다(또는 루트를 사용합니다).

그런 다음 이 스크립트를 매시간 크론탭에서 사용하세요:

#!/bin/sh
# 시스템 + MySQL 백업 스크립트
# 저작권 (c) 2008 Marchost
# 이 스크립트는 GNU GPL 버전 2.0 이상에 따라 라이센스가 부여됩니다
# ---------------------------------------------------------------------

#########################
######수정 필요#######

### 시스템 설정 ###
BACKUP=YOUR_LOCAL_BACKUP_DIR

### MySQL 설정 ###
MUSER="MYSQL_USER"
MPASS="MYSQL_USER_PASSWORD"
MHOST="localhost"

### FTP 서버 설정 ###
FTPD="YOUR_FTP_BACKUP_DIR"
FTPU="YOUR_FTP_USER"
FTPP="YOUR_FTP_USER_PASSWORD"
FTPS="YOUR_FTP_SERVER_ADDRESS"

######수정하지 마십시오#######
#########################################

### 바이너리 ###
TAR="$(which tar)"
GZIP="$(which gzip)"
FTP="$(which ftp)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"

### 오늘 + 24시간 형식의 시간 ###
NOW=$(date +"%d%H")

### 시간별 디렉토리 생성 ###

mkdir $BACKUP/$NOW

### 모든 데이터베이스 이름 가져오기 ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do

### 각 데이터베이스에 대한 디렉토리 생성, 개별 파일로 테이블 백업 ###
  mkdir $BACKUP/$NOW/$db

  for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`;
do
    FILE=$BACKUP/$NOW/$db/$i.sql.gz
    echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
  done
.done

### 모든 테이블을 하나의 멋진 파일로 압축하여 업로드 ###

ARCHIVE=$BACKUP/$NOW.tar.gz
ARCHIVED=$BACKUP/$NOW

$TAR -cvf $ARCHIVE $ARCHIVED

### FTP를 사용하여 백업 덤프 ###
cd $BACKUP
DUMPFILE=$NOW.tar.gz
$FTP -n $FTPS <
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.