ssh를 통해서 직접 워드프레스 백업하는 방법

ssh를 통해서 직접 워드프레스 백업하는 방법

사이버 패널 백업은 유료 서비스

워드프레스 생성 후 다음날 갑자기 홈페이지 접속이 안되었다. 보니 사이버패널(cyberpanel) 접속 자체가 안되었고 자체 프로그램에 문제가 있는 듯 하였다. 다행히 재시작을 하니 이전 내용 그대로 잘 뜨게 되었다. 하지만 이즘 불안감이 생겼고 미리 예방 차원에서 백업을 해야겠다고 생각을 하고 알아봤다.

근데 왠 걸 돈을 받네?

워드프레스 관리 요금제 관련 사진

사이버패널은 무료지만 관리에 대한 것은 유료이다.

혹시 데이터 백업은 무료이지 않을까 했지만 아래 이미지 처럼 원클릭 백업은 유로 서비스였다.

원클릭 백업 요금제 관련 사진

서버 관리비도 드는 판국에 조금이라도 아껴보고자 해당 기능을 수행하는 코드를 직접 짜서 서버에 반영해야겠다고 생각을 했고 아래에 관련 글을 정리했다.

SSH를 통해 워드프레스 백업 방법

SSH를 통해 직접 워드프레스를 백업하는 방법은 다음과 같습니다. 이 방법은 서버에 직접 접근하여 파일과 데이터베이스를 백업한다.

파일 백업

  1. SSH를 통해 서버에 접속
ssh root@ip
  1. 워드프레스 디렉토리로 이동(여기에서 your_domain은 당신의 홈페이지 주소를 생각하면 된다. 나의 경우는 gsixplus.com 이고 아래 예시를 참고하면 cd /home/gsixplus.public_html 이렇게 쓸 수 있다.
cd /home/your_domain/public_html
  1. 파일을 압축 해당 디렉토리에서 아래 명령어 그대로 복붙하면 wordpress_files_backup.tar.gz로 모든 내용이 압축되어 저장된다.
tar -czvf wordpress_files_backup.tar.gz *
  1. 백업 파일을 안전한 위치로 이동 your_username은 보통 도메인으로 설정되어 있고 나의 경우는 마찬가지로 gsixplus.com이다.
mv wordpress_files_backup.tar.gz /home/your_username/backups/

데이터베이스 백업

다음은 실질적인 데이터가 들어가있는 데이터베이스를 백업한는 것이다.

  1. MySQL 데이터베이스를 덤프 여기에서 your_mysql_username과 your_database_name은 당사자의 db명과 사용자명을 적으면 된다. 해당 부분은 다음 이미지를 참고하시면 쉽게 찾을 수 있다. Databases의 List Databases에 들어가서 Select domain에서 해당 도메인 선택하면 된다.
mysqldump -u your_mysql_username -p your_database_name > wordpress_db_backup.sql
  1. 데이터베이스 백업 파일을 압축
gzip wordpress_db_backup.sql
  1. 백업 파일을 안전한 위치로 이동 your_username은 변수이나 보통 도메인으로 설정되어있다. 나의 경우는 앞서 말씀드린대로 gsixplus.com
mv wordpress_db_backup.sql.gz /home/your_username/backups/

자동화 스크립트

위의 명령어를 차례대로 치면 문제 없이 백업할 수 있으나 사람인지라 가끔 실수도 할 수 있고 무엇보다 시간이 걸린다는 점에서 비효율적이다. 따라서 해당 부분은 자동화하는 스크립트를 작성하고 이를 스케줄로 돌리는 것을 고안하여 아래와 같이 적었다. 필요하신 분은 참고해서 시간을 세이브 하시길 바란다.

백업 과정을 자동화하려면 다음과 같은 스크립트를 작성할 수 있는데 변수 설정은 예시이므로 해당 변수 설정 부문만 바꾸셔서 사용하시길 바란다. 해당 변수는 어디서 찾는지 위의 명령어를 얘기하면서 언급했으니 위 내용을 참고바란다.

#!/bin/bash

# 변수 설정
BACKUP_DIR="/home/gsixplus.com/backups"
WP_DIR="/home/gsixplus.com/public_html"
DB_NAME="tWEDdEFsdRGfHSSF"
DB_USER="PWEDdEFsdRGHfSSF"
DATE=$(date +"%Y-%m-%d")

# 디렉토리 생성
mkdir -p $BACKUP_DIR

# 파일 백업
tar -czvf $BACKUP_DIR/wordpress_files_$DATE.tar.gz $WP_DIR

# 데이터베이스 백업
mysqldump -u $DB_USER -p $DB_NAME | gzip > $BACKUP_DIR/wordpress_db_$DATE.sql.gz

echo "백업이 완료되었습니다."

이 스크립트를 실행 가능하게 만들고 cron job으로 설정하여 정기적인 백업을 수행한다.

cron job 설정 방법

크론 작업(Cron Job)을 설정하여 워드프레스 백업 스크립트를 자동으로 실행하는 것이다.

  1. 백업 스크립트 생성
    먼저, 제공된 백업 스크립트를 서버의 적절한 위치에 저장합니다. *your_username은 보통 도메인으로 설정되어 있다.
vi /home/your_username/wordpress_backup.sh

이전에 cron job 설정과 관련한 글을 작성했으므로 이 후의 내용은 아래 글을 참고하시면 된다.

귀찮아서 그런거 맞음…

백업 복원

파일 복원

tar -xzvf wordpress_files_backup.tar.gz -C /path/to/wordpress/directory

데이터베이스 복원

gunzip < wordpress_db_backup.sql.gz | mysql -u your_mysql_username -p your_database_name

SSH를 통한 직접 백업은 더 많은 제어와 유연성을 제공하지만, 수동으로 수행할 경우 실수의 위험이 있으니,스크립트를 사용하여 자동화하는 것이 좋다. 그러니 지금 내용을 그냥 스쳐 지나가지 말고 직접 반드시 해보는 걸 권장한다.

Leave a Comment

error: Content is protected !!