Ghost 블로그 플랫폼은 간편한 자동 설치 스크립트를 제공하여 소프트웨어 호스팅을 처음 접하는 사용자에게 편리합니다. 하지만 자동 백업 기능은 제공하지 않아 많은 Ghost 설치가 백업 없이 운영되는 경우가 많습니다. 다행히도, Ghost 블로그를 백업하는 쉬운 방법 중 하나는 통합 백업 관리자를 활용하는 것입니다. 이 방법은 완벽하지 않고 자유도가 다소 떨어지지만, 간단한 백업에는 유용할 수 있습니다.
Ghost 인터페이스에서 블로그를 백업하려면 새 브라우저 탭을 열고 다음 주소로 이동하세요:
https://myghostblog.com/ghost/settings/labs/
Ghost 웹 인터페이스의 ‘실험실’ 페이지에서 “내보내기” 버튼을 찾아서 클릭하세요. 이 버튼을 누르면 블로그 전체 백업이 생성됩니다. 백업된 데이터를 복원하려면, 동일한 주소로 이동하여 “가져오기” 버튼을 클릭하고 백업 파일을 선택하여 로드하면 됩니다. 가져오기 작업이 완료되면 블로그 설정과 데이터는 백업 시점의 상태로 되돌아갑니다.
명령줄을 이용한 백업
Ghost 소프트웨어 자체에 내장된 백업 도구는 편리하지만, Linux 명령줄을 통해 얻을 수 있는 수준의 보안, 자동화 및 유연성은 부족합니다. Linux 환경에서 Ghost 블로그를 효과적으로 백업하려면, 먼저 백업 파일을 저장할 새 폴더를 생성해야 합니다. 이 폴더에는 Ghost 관련 중요한 백업 파일과 데이터가 보관됩니다.
서버 터미널에서 `mkdir` 명령어를 사용하여 새 폴더를 생성하십시오. 이때, root 권한으로 실행하지 않도록 주의하세요!
mkdir -p ~/ghost-blog-backup mkdir -p ~/ghost-blog-backup/sql
위의 `mkdir` 명령어를 실행하면, 현재 로그인한 사용자의 `/home/` 디렉토리 내에 새로운 디렉토리가 생성됩니다. 이 위치는 Linux 파일 시스템 내에서 찾기 쉬우며 백업 파일을 안전하게 보관하기에 적합합니다.
이제, `mysqldump` 명령어를 사용하여 Ghost SQL 데이터베이스를 내보내야 합니다.
참고: `username`에는 실제 사용자 이름을 입력하고, `databasename`에는 Ghost 설치 시 사용한 데이터베이스 이름을 입력해야 합니다.
mysqldump -u username -p databasename > db.ghost_blog.sql
다음으로, `cd` 명령어를 사용하여 Ghost 디렉토리로 이동합니다.
cd /var/www/ghost
Ghost 소프트웨어 디렉토리 내에서 `ghost stop` 명령어를 실행하여 Ghost 서비스를 중단시킵니다.
ghost stop
Ghost 서비스가 중단된 상태에서, `~/ghost-blog-backup` 디렉토리에 Ghost 설치 파일 전체를 안전하게 복사할 수 있습니다.
cp -rp /var/www/ghost/* ~/ghost-blog-backup
`cp` 명령어와 함께 `-rp` 플래그를 사용하면, Ghost 설치 시 설정된 모든 권한이 그대로 유지됩니다. 이제, `cd` 명령어를 사용하여 `/var/www/ghost` 디렉토리에서 나와 `/home/username` 디렉토리로 이동합니다.
cd ~/
백업 압축하기
이제 모든 중요한 Ghost 블로그 파일은 `~/ghost-blog-backup`에 저장되어 있으며, 권한도 그대로 유지되어 있습니다. 다음 단계는 이 파일들을 단일 `tar` 아카이브로 압축하는 것입니다. 압축된 `tar` 아카이브는 백업 파일을 서버에서 다른 곳으로 전송하거나, Dropbox, NextCloud와 같은 저장소에 업로드하거나, 다른 사람과 공유하기에 용이합니다.
Ghost 백업 파일의 압축 아카이브를 생성하려면, 터미널에서 `tar` 명령어를 사용하세요.
참고: 명령어는 정확하게 복사해야 합니다. 그렇지 않으면 압축 과정에서 파일 권한이 제대로 유지되지 않을 수 있습니다!
tar -zcvpf ghost-blog-backup.tar.gz /home/username/ghost-blog-backup
백업 암호화하기
백업 프로세스의 다음 단계는 매우 중요합니다. 이 단계를 건너뛰면, Ghost 블로그의 데이터베이스, 중요한 시스템 파일 등이 노출되어 `tar` 아카이브에 접근 가능한 모든 사람이 내용을 열람할 수 있게 됩니다. 다행히도, Linux 환경에서는 `tar` 아카이브를 암호화하는 것이 매우 쉽습니다.
Linux 명령줄에서 암호화하는 가장 빠른 방법은 GnuPG를 사용하는 것입니다. 암호화하기 전에 ‘gpg’가 설치되어 있는지 확인하십시오. 그런 다음 다음 명령어를 실행합니다:
sudo gpg -c ghost-blog-backup.tar.gz
`gpg` 명령어에 `-c` 플래그를 사용하면, 암호화 프로세스가 즉시 시작됩니다. 프로세스가 완료되면 결과물로 `ghost-blog-backup.tar.gz.gpg` 파일이 생성됩니다.
이제 백업이 GPG로 암호화되었으므로 암호화되지 않은 `tar` 아카이브를 삭제해도 안전합니다. 삭제하려면 `rm` 명령어를 사용하세요.
rm ghost-blog-backup.tar.gz
백업 복원하기
새 시스템에서 Ghost 백업을 복원하는 과정은 백업 파일 암호 해독부터 시작됩니다. `ghost-blog-backup.tar.gz.gpg` 파일을 서버의 `/home/username/` 디렉토리로 이동시킨 후 다음 명령어를 사용하여 암호를 해독합니다.
gpg ghost-blog-backup.tar.gz.gpg
다음으로, 암호 해독된 아카이브 파일을 추출합니다.
tar -xvpf ghost-blog-backup.tar.gz
`cd` 명령어를 사용하여 터미널을 SQL 폴더로 이동한 다음 `mysqldump` 명령어를 사용하여 데이터베이스를 복원합니다.
cd ~/ghost-blog-backup/sql sudo -s mysqldump -u username -p databasename < db.ghost_blog.sql
rm -rf /home/username/ghost-blog-backup/sql
데이터베이스 복원이 완료되면, `cp` 명령어를 사용하여 시스템 파일을 제 위치로 이동시킵니다.
cp -rp /home/username/ghost-blog-backup/* /var/www/
모든 파일 복원이 완료되면, NPM을 사용하여 `ghost-cli`를 재설치합니다.
참고: NodeJS, Yarn 등을 재설치해야 할 수도 있습니다. 필요한 경우 관련 튜토리얼을 참고하세요.
sudo npm i -g ghost-cli
마지막으로, 다음 명령어를 사용하여 Ghost 서버를 시작합니다.
ghost start
`ghost start` 명령어를 실행하면, 서버에서 Ghost 블로깅 서비스가 즉시 활성화됩니다.