백업 스크립트 · 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 <새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.