RasPi
Home > RasPi > 記事 > 2018年5月 > Crowiのバックアップ

Crowiのバックアップ

カテゴリ: アプリ・ソフト,手順メモ

CrowiをWikiとして採用して半年近くが経過しました。

最初はテストのつもりだったのですが、知見やメモを書き込んで行ったらインフラ化してしまい、「さすがにバックアップ取らないとマズイよね?」という状態にまで来てしまいました。

そこで、重い腰を上げてバックアップのやり方を調査しました。

前提

今回は、以下のことを前提としています。

  • Raspberry Pi 2 Bで運用
  • スタンドアロン型で、ネットワーク接続はなし
    • ファイルアップロードはローカルを指定
  • Crowiは/home/pi/crowi/crowi/にインストール
  • バックアップ先は/home/pi/crowi_backup/以下にDBとファイルの双方を取るものとする
  • CrowiはRaspberry Piブート時にcrowi.shなるシェルスクリプトでapp.jsnpm startして起動している

手順

やることとしては、

  1. Crowiを停止
  2. バックアップ用ディレクトリ(日付入り)を作成
  3. mongoDBバックアップ
  4. ファイルバックアップ

という手順を行うことになると思います。そのために、まずは前準備としてバックアップ先のディレクトリ(上記2.の日付入りディレクトリの親)を作っておきます。

~ $ mkdir crowi_backup

そうしたら、作成したディレクトリの下にシェルスクリプトを作成します。

~ $ cd crowi_backup/
~/crowi_backup $ vi bkup.sh

bkup.shの内容は以下。

bkup.sh

#!/bin/bash

cd `dirname $0`
# Crowi stop
sudo kill -9 `ps -e | grep node | awk '{print $1}'`

# mongoDB stop
sudo service mongodb stop

# variables
DATE=$(date +"%Y-%m-%d_%H%M")
DIRCNAME=backup$DATE

# make directory
mkdir $DIRCNAME
cd $DIRCNAME
mkdir filebkup
mkdir dbbkup

# db backup
sudo mongodump --out dbbkup/db

# file backup
sudo tar cvfz filebkup/files.tar.gz /home/pi/crowi/crowi/public/uploads/

# Crowi reboot
sudo /home/pi/crowi/crowi/crowi.sh &

後は、このシェルスクリプトの権限を変更。

~/crowi_backup $ chmod 700 bkup.sh

これで準備は完了。後はcrontabsudo /home/pi/crowi_backup/bkup.sh &を登録しておけば、バックアップを取ってくれます。最後のcrowi.shで再起動をかける、と。例えば毎週土曜日の午後22時であれば、

0 22 * * 7 sudo /home/pi/crowi_backup/bkup.sh &

こんな感じで。

あとはレストアの方法も調べないと……。

参考

Crowiのバックアップ方法

mongoDB

シェル

crontab

タグ: Crowi,Wiki

 



関連する記事一覧