LoginSignup
0
0

More than 1 year has passed since last update.

MongoDBの定期バックアップ

Posted at

TL;DR

先日GROWIを導入した(Ubuntu Server 20.04 LTSにGROWIをインストール).
このGROWIではデータベースとしてMongoDBを利用している.
そこでMongoDBのバックアップの方法とcronを使った定期実行をまとめた.

正直「データベース関係の知識」や「シェルの定期実行に関する知識」が不足しているため,他に効率的なやり方がある場合や以下の説明に誤った部分がある場合は教えてほしい.

1. MongoDBのバックアップの仕方

MongoDBをバックアップ/リストアする方法を参考にした.
下記は任意のデータベース(db name)を任意のディレクトリに保存するコマンドである.

$ mongodump -o /path/to/backup_dir -d (db name)

2. cronの使い方

今回は定期実行のためにcronを利用した.
参考にしたのは【cron】改めてcronの設定方法について勉強し直してみた
cronを利用する上で知りたい情報 (設定のフォーマットやログ出力のやり方など) はこちらによくまとめられていた.
そのため,本記事では私が利用したコマンドだけを以下に示す.

crontabにsetup_fileに記述された設定を適用

$ crontab /path/to/setup_file

現在の設定内容の確認

$ crontab -l

3. cronを使ったMongoDBの定期バックアップ

1.と2.を組み合わせて定期バックアップを実現する.

3-1. MongoDBのバックアップのためのシェルファイルを作成

periodic.sh
mongodump -v -o /path/to/backup_dir -d growi
# その他の定期実行する処理もついでに記述

3-2. cronの設定ファイルを作成

毎週月曜日の午前3時に実行する.

cron.conf
0 3    * * 1    sh /path/to/periodic.sh

3-3. 設定ファイルを有効化

crontab cron.conf

# CHECK
crontab -l
0
0
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
0
0