LoginSignup
9
10

More than 3 years have passed since last update.

Growiの定期バックアップ - AWSを利用しない場合

Posted at

はじめに

どうも!生産技術部のエンジニアです。growiの定期バックアップ方法を検討しましたので、参考までにどうぞ。

環境

  • CentOS : 7.6.1810
  • Docker-CE : 19.03.1
  • Docker Compose : 1.25.0
  • Growi :以下 versioon_info.png

定期バックアップ

バックアップ用のスクリプトを作成

バックアップは、mongodumpコマンドを利用し、アーカイブファイルを作成します。作成するアーカイブファイルのファイル名には、日時とgrowiのバージョン番号を付けました。バックアップファイルからの復元には、mongorestoreコマンドを利用します。バックアップは一週間経過したファイルから削除します。
※growi/docker-compose.ymlのFILE_UPLOADをlocalに設定している場合は、別途バックアップが必要だと思われます。mongodbにしておけば不要かどうかも謎です。

growi_backup.sh
#!/bin/sh

BKDIR=/srv/growi/data/backups

# Creating backup archive
docker exec -d growi_mongo_1 mongodump --archive=mongodb.archive
docker cp growi_mongo_1:mongodb.archive $BKDIR/$(date --date '1 day ago' "+%s_%Y_%m_%d_3.7.1_mongodb.archive")

# Create config backup archive

# Delete old backups
find $BKDIR -mtime +6 | xargs rm -rf

crontabでスクリプトを定期実行

crontabにバックアップを取りたい時刻を設定し、スクリプトを実行する。

# crontab -l
0 2 * * * /root/Docker/growi/growi_backup.sh CRON=1

:cherry_blossom:ご参考

9
10
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
9
10