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