[CentOS 7.9] 미디어위키 백업하기

Binsu·2021년 8월 29일
0

OS

목록 보기
2/7

백업

서버 종료

서버가 구동중이면 캐시파일도 함께 복사되어 원본과의 용량 차이가 발생하므로, 서버를 먼저 종료하고 백업해야 한다.

# httpd(아파치 웹서버)와 mariadb 종료
sudo /opt/lampstack-8.0.9-0/ctlscript.sh stop

# 시작하기
sudo /opt/lampstack-8.0.9-0/ctlscript.sh start

# 재시작
sudo /opt/lampstack-8.0.9-0/ctlscript.sh restart

미디어위키 폴더 백업

# 하위 디렉터리를 포함하여 모든 정보(권한 포함)를 동일하게 복사
cp -a 원본디렉터리 사본디렉터리

MariaDB sock 오류 해결 방법

mysql -u root -p 명령어 실행 시 mysql.sock 파일이 없다는 에러가 계속 발생해서 아래 글을 보고 해결했다. 만약 에러가 발생하지 않는다면 이 부분은 넘어가면 된다.

해결 방법은 다음과 같다.

# .sock 파일의 위치를 찾아준다.
find / -name '*.sock'

# 심볼릭 링크를 만들어준다.
ln -s /opt/lampstack-8.0.9-0/mariadb/tmp/mysql.sock /var/lib/mysql/mysql.sock

나의 경우, find 명령어로 /opt/lampstack-8.0.9-0/mariadb/tmp/mysql.sock에 위치한 것을 확인하고 해당 위치의 sock 파일을 /var/lib/mysql/ 아래에 심볼릭 링크로 만들어 주었다.

MariaDB를 직접 설치한 것이 아니라 Bitnami LAMP Stack을 통해 설치되어 설치 경로가 달라서 sock파일 경로를 찾지 못하는 것 같다. 이것 때문에 시간을 많이 허비했다.

MariaDB DB 조회

DB를 백업하기 전에 현재 DB 정보를 확인하기 위해 다음과 같이 MariaDB에 접속한다.

# MariaDB 로그인
mysql -u root -p

# MariaDB 서버 내 database 목록 조회
MariaDB [(none)]> show databases;

# 조회할 database를 선택
MariaDB [(none)]> use database {조회하고_싶은_DB_이름};

# 테이블 목록 조회
MariaDB [(선택된 database 이름)]> show tables;

내가 백업하고 싶은 DB가 MariaDB 서버에 있는지 확인하는 목적이므로 여기서는 단순히 테이블 목록만 확인했다. 아래 블로그는 MariaDB 조작 명령어가 잘 정리되어 있다.

확인이 끝났으니 DB를 백업하겠다. 아래 명령어를 입력하면 간편하게 .sql 파일 하나로 백업이 완료된다.

# 방법 1
sudo mysqldump -u root -p -h localhost [백업할_DB_이름] > backup.sql

# 방법 2
sudo mysqldump -h[호스트_주소] -uroot -pPassword --databases mydb > mydb_backup.sql

나는 /opt/lampstack-8.0.9-0/mariadb/data 디렉터리 안에 있는 wiki db 디렉터리를 통째로 복사했다. .sql 파일보다 용량은 많이 차지한다.

extensions 백업

LocalSettings.php에서 정의한 extension(라이브 에디터 등)을 사용하기 위해 백업하려고 한다. 나는 단순하게 디렉터리 자체를 복사했다. 명령어는 다음과 같다.

cp -a /opt/lampstack-8.0.9-0/apache2/htdocs/wiki/extensions ./extensions

백업파일 압축

앞에서 복사한 디렉터리(웹, DB, extension)를 옮기기 편하도록 tar 명령어로 압축할 것이다.

# 압축
sudo tar -zcvf wiki_backup.tar.gz *

# (참고)압축해제
sudo tar -zxvf wiki_backup.tar.gz

압축이 완료되면 ls 명령어로 tar.gz 파일이 있는지 아래와 같이 확인한다.

0개의 댓글