블로그를 운영하다 보면 서버 장애나 해킹, 혹은 잘못된 플러그인 업데이트로 인해 사이트가 깨지는 상황이 발생할 수 있습니다. 이럴 때 가장 든든한 보험은 바로 최신 백업 파일입니다. 특히 워드프레스 자동 백업 시스템을 미리 구축해 두면 예기치 못한 상황에서도 빠르게 대응할 수 있습니다.
단순히 플러그인을 사용하는 방법도 있지만, 서버 리소스를 아끼고 더 확실하게 데이터를 보관하고 싶다면 리눅스 크론탭(Crontab)을 활용한 워드프레스 DB 백업 자동화를 추천합니다. 이렇게 설정해 두면 주기적으로 데이터베이스가 저장되어 보다 안정적인 워드프레스 자동 백업 환경을 만들 수 있습니다.
또한 백업만큼 중요한 것이 바로 워드프레스 복원방법입니다. 백업 파일을 확보해 두었다면, 데이터베이스를 재설치하거나 기존 DB에 덮어쓰는 방식으로 비교적 간단하게 사이트를 복구할 수 있습니다. 미리 워드프레스 복원방법까지 숙지해 두면 실제 장애 발생 시 훨씬 빠르게 사이트를 정상화할 수 있습니다.
목차
1.워드프레스 자동 백업 및 데이터베이스 압축 보관 방법 정리
1. 워드프레스 DB 정보 확인하기 (터미널)
자동 백업 스크립트를 만들기 전, 가장 먼저 내 사이트의 데이터베이스 정보를 정확히 알아야 합니다. 터미널에서 워드프레스 설치 경로로 이동하여 설정을 확인해 보세요.
wp-config.php 파일 찾기 및 확인
보통 /var/www/html 경로에 설치되지만, 설정에 따라 다를 수 있습니다. 아래 명령어로 위치를 찾고 DB 정보를 추출할 수 있습니다.
# 워드프레스 폴더로 이동
cd /var/www/html
# wp-config.php 파일 위치 검색
sudo find /var/www/html -name "wp-config.php"
# 설정 파일에서 핵심 DB 정보만 필터링해서 보기
cat wp-config.php | grep -E "DB_NAME|DB_USER|DB_PASSWORD"여러 사이트를 운영 중인 경우 (멀티 사이트 DB 확인)
각각 다른 폴더에 사이트가 설치되어 있다면 각 경로의 파일을 개별적으로 확인해야 합니다. 예를 들어 site_a와 site_b라는 폴더가 있다면 다음과 같이 입력합니다.
# 첫 번째 사이트 정보 확인
sudo grep -iE "DB_NAME|DB_USER|DB_PASSWORD" /var/www/html/site_a/wp-config.php
# 두 번째 사이트 정보 확인
sudo grep -iE "DB_NAME|DB_USER|DB_PASSWORD" /var/www/html/site_b/wp-config.php명령어를 실행하면 출력되는 값들을 메모장 등에 복사해 두세요.
- DB_NAME: 데이터베이스 명
- DB_USER: 사용자 이름
- DB_PASSWORD: 비밀번호 (특수문자가 있다면 스크립트 작성 시 반드시 큰따옴표
""로 감싸야 합니다.)
2. 워드프레스 자동 백업 스크립트 작성
이제 두 개의 사이트를 각각 백업하고, 서버 용량 관리를 위해 최신 2개의 백업본만 남기고 자동 삭제하는 스마트한 스크립트를 작성해 보겠습니다.
#!/bin/bash
# --- 1. 환경 설정 구간 ---
BACKUP_DIR="/home/ubuntu/backups"
DATE=$(date +%Y%m%d_%H%M%S)
# DB 접속 정보 (사이트 공통 유저인 경우)
DB_USER="your_admin"
DB_PASS="your_password_1234"
# 사이트 1 설정
SITE1_NAME="mysite1"
SITE1_ROOT="/var/www/html/site_a"
SITE1_DB="db_name_1"
# 사이트 2 설정
SITE2_NAME="mysite2"
SITE2_ROOT="/var/www/html/site_b"
SITE2_DB="db_name_2"
# 백업 저장 폴더 생성
mkdir -p $BACKUP_DIR
# --- 2. 데이터베이스(DB) 백업 실행 ---
mysqldump -u$DB_USER -p$DB_PASS $SITE1_DB $BACKUP_DIR/db_${SITE1_NAME}_$DATE.sql 2/dev/null
mysqldump -u$DB_USER -p$DB_PASS $SITE2_DB $BACKUP_DIR/db_${SITE2_NAME}_$DATE.sql 2/dev/null
# --- 3. 웹 서버 파일 압축 ---
tar -czf $BACKUP_DIR/files_${SITE1_NAME}_$DATE.tar.gz -C /var/www/html site_a
tar -czf $BACKUP_DIR/files_${SITE2_NAME}_$DATE.tar.gz -C /var/www/html site_b
# --- 4. 용량 관리 (최신 2개 파일만 유지하고 삭제) ---
# DB 백업 파일 정리
ls -t $BACKUP_DIR/db_${SITE1_NAME}_*.sql | tail -n +3 | xargs -r rm
ls -t $BACKUP_DIR/db_${SITE2_NAME}_*.sql | tail -n +3 | xargs -r rm
# 웹 압축 파일 정리
ls -t $BACKUP_DIR/files_${SITE1_NAME}_*.tar.gz | tail -n +3 | xargs -r rm
ls -t $BACKUP_DIR/files_${SITE2_NAME}_*.tar.gz | tail -n +3 | xargs -r rm
echo "$DATE] 백업이 성공적으로 완료되었습니다. 최신 2회분 보관 중."작성한 코드를 서버에 파일로 만들고 실행할 수 있도록 권한을 설정해야 합니다.
3. 크론탭(Crontab)으로 주기적인 자동 백업 등록
매번 수동으로 실행할 순 없으니, 서버가 스스로 백업하도록 스케줄을 등록합니다.
crontab -e파일 가장 아래에 다음 내용을 추가합니다.
# 매일 새벽 3시에 백업 스크립트 실행 및 로그 기록
0 3 * * * /home/ubuntu/auto_backup.sh /home/ubuntu/backup.log 2&14. 2차 백업 하기
위 방법으로 생성된 서버 백업 파일은 현재 운영 중인 서버(예: 오라클 클라우드, AWS 등) 내부에 저장됩니다. 만약 서버 계정 자체가 정지되거나 하드웨어 장애가 발생하면 이 백업 파일도 함께 사라질 위험이 있습니다.
따라서 일주일에 한 번 정도는 FileZilla(파일질라) 같은 FTP 프로그램을 이용해 ~/backups 폴더에 있는 파일들을 본인의 PC나 클라우드 저장소로 옮겨두시는 것을 강력하게 추천드립니다.
2. 워드프레스 데이터베이스 복구 및 서버 이전 단계별 정리
정기적으로 생성해둔 워드프레스 자동 백업 파일이 있다면, 서버 장애나 호스트 이전 상황에서도 당황할 필요가 없습니다. 압축된 웹 파일과 SQL 데이터베이스 파일만 있으면 그대로 새 환경에 이식할 수 있기 때문입니다.
1. 사전 준비: 백업 파일 옮기기
가장 먼저 기존 서버에서 생성된 files_*.tar.gz (웹 파일)와 db_*.sql (DB 파일)을 새 서버의 특정 폴더로 업로드해야 합니다. FTP(FileZilla 등)나 scp 명령어를 이용해 파일을 준비해 주세요.
2. 웹 서버 파일 복구 (압축 해제)
먼저 워드프레스 엔진과 이미지, 플러그인 등이 포함된 웹 파일을 복구합니다. 보통 /var/www/html 경로를 사용하므로 해당 위치에 압축을 풉니다.
# 백업 파일이 있는 디렉토리로 이동
cd ~/backups
# 대상 경로(/var/www/html)에 압축 해제
# 기존 파일이 있다면 덮어쓰거나 미리 백업해 두세요.
sudo tar -xzf files_mysite1_20260225.tar.gz -C /var/www/html
압축을 푼 후에는 웹 서버(Nginx 또는 Apache)가 파일을 읽을 수 있도록 소유권 설정을 다시 해주는 것이 좋습니다.
# www-data 권한 부여 (우분투 기준)
sudo chown -R www-data:www-data /var/www/html/site_a
3. 데이터베이스(DB) 이식 및 복구
이제 가장 중요한 워드프레스 DB 복구 단계입니다. 새 서버에 빈 데이터베이스를 먼저 생성한 후, 백업해둔 SQL 파일을 밀어 넣어야 합니다.
빈 데이터베이스 생성 (MySQL/MariaDB 접속)
sudo mysql -u root -p
접속 후 아래 명령어를 입력하여 새로운 DB를 만듭니다. (이미 있다면 생략 가능)
CREATE DATABASE new_wordpress_db;
EXIT;
SQL 백업 파일 가져오기 (Import)
터미널에서 아래 명령어를 입력하여 백업된 데이터를 새 DB에 주입합니다.
# mysqldump로 받은 sql 파일을 새 DB에 이식
mysql -u [사용자명] -p [새_DB명] < db_mysite1_20260225.sql
팁: 실행 시 비밀번호를 묻는 창이 나오면 DB 사용자의 비밀번호를 입력해 주세요.
4. wp-config.php 설정 수정
파일과 DB가 모두 옮겨졌지만, 아직 둘 사이의 연결 고리가 예전 정보로 되어 있을 수 있습니다. 새 서버의 DB 이름과 비밀번호에 맞춰 설정을 변경해야 합니다.
sudo nano /var/www/html/site_a/wp-config.php
아래 세 항목을 새 서버 정보에 맞게 수정하고 저장(Ctrl+O, Enter, Ctrl+X)합니다.
define( 'DB_NAME', 'new_wordpress_db' );
define( 'DB_USER', 'new_user' );
define( 'DB_PASSWORD', 'new_password' );
5. 도메인이 변경된 경우 (선택 사항)
만약 서버만 옮기는 것이 아니라 도메인 주소까지 바뀐 경우라면, DB 내의 예전 주소들을 새 주소로 치환해줘야 접속이 가능합니다.
이때는 워드프레스 관리자 페이지 접속이 안 될 수 있으므로, SQL 명령어로 직접 수정하거나 wp-cli 툴을 활용하는 것이 편리합니다. 간단하게는 관리자 로그인 후 ‘Settings -> General’에서 주소를 변경할 수 있지만, 도메인이 아예 바뀌었다면 DB 내 wp_options 테이블의 siteurl과 home 값을 먼저 수정해야 합니다.
6. 마무리 확인
모든 과정이 끝났다면 웹 서버를 재시작하고 사이트에 접속해 보세요.
# Nginx 사용 시
sudo systemctl restart nginx
# Apache 사용 시
sudo systemctl restart apache2
이제 워드프레스 자동 백업의 위력을 실감하실 수 있을 겁니다. 평소에 꼼꼼히 백업을 수행해 두었다면, 서버 이전은 더 이상 두려운 작업이 아닙니다.
이식 과정에서 Error Establishing a Database Connection 메시지가 뜬다면 DB 사용자 권한이나 wp-config.php의 오타를 점검해 보시기 바랍니다.
정기적인 워드프레스 데이터베이스 백업과 파일 압축 보관만이 여러분의 소중한 자산을 지키는 유일한 방법입니다.
앞서 생성한 백업 파일을 활용하여 새로운 서버나 다른 워드프레스 환경으로 데이터를 옮기는 워드프레스 이전 및 복구 방법입니다.
워드프레스 사이트 이전이나 데이터베이스 복구를 준비 중인 분들을 위해, 터미널 환경에서 가장 빠르고 정확하게 이식하는 방법을 정리해 드립니다.

