개인 서버를 운영한다면 대다수가 웹 서버를 운영하기 위함이고, 이 때 꼭 알아두어야 할 명령어가 바로 백업 명령어입니다.
서버 관리자에 대하여 떠도는 말 중에, '보안이 뚫린 서버관리자는 용서 가능하나, 백업하지 않은 서버관리자는 용서되지 않는다.'라는 말이 있을 정도로, 주기적으로 백업을 실시하는 것은 매우 중요합니다.
홈페이지를 백업할 때 하게 되는 초보적인 실수 중 하나가, 파일만 백업하고 DB는 백업하지 않는 실수입니다. 물론 DokuWiki와 같이 파일 기반 DB를 사용하는 경우 DB 백업은 하지 않아도 되지만, XE를 포함한 CMS의 대다수는 MySQL과 같은 DB를 함께 사용하고 있습니다.
홈페이지를 백업할 때는 반드시 ①파일과 ②DB를 함께 백업해 두어야 나중에 온전히 복원할 수 있습니다.
또한, 백업 스크립트 등을 만들어서 Cron에 자동실행되도록 등록한 뒤에는 최초 1회 정도는 백업이 올바르게 되고 있는지 직접 확인하는 것이 좋습니다.
나중에 복원하려고 봤더니 0KB짜리 백업 파일을 보고 당황하는 사태를 방지하려면 말이죠.^^;;
데이터 파일 백업
tar cvzf [압축 파일명].tar.gz [원본 파일명/디렉토리]
ex) tar cvzf 20120211.tar.gz public_html
데이터 파일 복원
tar xvzf [압축 파일명].tar.gz
ex) tar xvzf 20120211.tar.gz
데이터베이스(MySQL) 백업
mysqldump -u [사용자] -p [백업할 DB명] > [백업 파일명].sql
ex) mysqldump -u root -p xe > 20120211.sql
데이터베이스(MySQL) 복원
※복원 명령을 실행하기 전에 복구할 DB를 미리 만들어 두어야 합니다.
mysql -u [사용자] -p [복구할 DB명] < [백업 파일명].sql
ex) mysql -u root -p xe < 20120211.sql