30
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Growiのバックアップとリカバリの手順

Last updated at Posted at 2018-01-23

GrowiというWikiシステムがありますが、万が一サーバーが故障した場合これまで蓄積したナレッジが失われてしまいます。
そんな悲しい事態になる前にバックアップとリカバリを試しておくことにします。
なお、手順やスクリプトは我流ですので正常に復旧できなくても責任は持ちません。自己責任でお願いします。

バックアップ計画を立てる

バックアップ計画を以下のように設定しました。

  • 毎日3:00にバックアップを保存する
  • バックアップの保存期間は7日間
  • バックアップ先はNAS(Synology DS216j)上のフォルダ
  • バックアップは自動で行われる

バックアップ先のマウント

バックアップ先のフォルダをCIFSマウントしておきます。cifsの接続パラメーターはNASによって若干変わることに留意しましょう。

# dnf install samba-client cifs-utils
# mkdir /mnt/backup
# mount.cifs -o "soft,vers=2.0,username=ユーザー名,password=パスワード" //NASのIPorFQDN/backup /mnt/backup
# touch /mnt/backup/testfile     ※バックアップ先にファイルを書き込めるか確認
# rm /mnt/backup/testfile
# cp -p /etc/fstab /etc/fstab.bak
# vi /etc/fstab
/etc/fstab
※追記
# NAS Mount
//NASのIPorFQDN/backup /mnt/backup soft,vers=2.0,username=ユーザー名,password=パスワード 0 0

パラメーター設定をバックアップ

Growiパラメーター設定ファイルをバックアップします。この中にパスワードシード値も入っているので忘れずに保存しなければなりません。シード値を紛失した場合、リカバリ後にGrowiにログインできなくなります。
Growiのバージョンも控えておいたほうが良いです。

# cp -p /etc/sysconfig/growi /mnt/backup/growi-params
# echo "GROWI-VERSION=バージョン番号" >> /mnt/backup/growi-params

バックアップタスクの作成

バックアップを自動化するためのタスクを作成します。

# cd /root     ※任意の場所
# vi growi-backup.sh
# chmod u+x growi-backup.sh
# crontab -e
growi-backup.sh
#!/bin/bash
INSTALL_PATH=/root/growi     ※Growiの配置場所
BACKUP_PATH=/mnt/backup
TODAY=`date +"%Y%m%d"`

tar -C ${INSTALL_PATH}/public -cf ${BACKUP_PATH}/${TODAY}.tar uploads
mongodump -d growi --gzip --archive=/tmp/dbdump.gz --quiet
tar -C /tmp -uf ${BACKUP_PATH}/${TODAY}.tar dbdump.gz
gzip -f ${BACKUP_PATH}/${TODAY}.tar
rm -fR /tmp/dbdump.gz

find ${BACKUP_PATH} -name "*.tar.gz" -mtime +7 -delete
crontab
#追記
0 3 * * * /root/growi-backup.sh

以上でGrowiのバックアップ設定が完了です。あとは普通にGrowiを使いましょう。

リカバリをしなければならなくなりました!

サービスしていたサーバーが完全に破損してしまいました。起動すらできません...
というシチュエーションを想定してリカバリ作業に入ります。

Growiの空セットアップ

Growiを構築します。この時点ではGrowiを起動しないようにして下さい。
なお、バージョン情報とシード値はバックアップ元と同じものにする必要があります。

誤ってGrowiを起動してしまった場合

余分なDBが作成されてしまうため復旧に失敗します。次のコマンドでDBを削除して下さい。

# systemctl stop growi
# mongo
> use growi;
> db.dropDatabase();
> quit();

バックアップデータの展開

バックアップデータをSCPなどを使ってサーバー上にコピーし、展開しておきます。

# tar xzf 20190630.tar.gz

アップロードファイルの配置

バックアップデータから展開されたuploadsフォルダを配置します。

# mv uploads /root/growi/public/

データベースのリカバリ

ダンプファイルから復元します。

# mongorestore --gzip --archive=dbdump.gz -d growi

Growiの起動と確認

これでリカバリが完了しました。あとはGrowiを起動して動作確認を行いましょう。

# systemctl start growi
30
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?