2
1

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 1 year has passed since last update.

[GrowiWiki]サーバーのバックアップについて

Last updated at Posted at 2022-07-15

お品書き

  1. MongoDBについて
  2. 実際のコマンドについて
  3. 定期実行について

初めに

今運用しているやり方ではいざ消えてしまったら、泣いてしまうので、バックアップをとって安心しよう!

事前知識

MongoDB

MongoDBとはDBのひとつで、MySQLに似たものです。

MongoDB(モンゴDB)は、Server Side Public License(英語版) (SSPL) で提供されるドキュメント指向データベースである。開発とサポートはMongoDB Inc.が行なっている

引用: wiki MongoDB

今回はMongoDBについて特に理解する必要はないため名前を知っておく程度で留めておく。

リストア

バックアップしたデータを復元することです

コマンドについて

Dockerのコンテナ名を検索しよう

コマンドプロンプトで自動で実行するために、このコードを書こう!!

まずMongoDBのコンテナ名を確認しましょう!!

$  sudo docker ps -a

↓出力結果↓

CONTAINER ID   IMAGE                 COMMAND                  CREATED        STATUS        PORTS                                       NAMES
c2f4ba897e40   growi_app             "dockerize -wait tcp…"   41 hours ago   Up 24 hours   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   growi_app_1
bdf7248b2f4d   mongo:4.4             "docker-entrypoint.s…"   41 hours ago   Up 24 hours   27017/tcp                                   growi_mongo_1
9efaf2af9286   growi_elasticsearch   "/bin/tini -- /usr/l…"   41 hours ago   Up 24 hours   9200/tcp, 9300/tcp                          growi_elasticsearch_1

この中のNAMESのところがコンテナ名ですので、今回は{growi_mongo_1}となります。

シェルファイルを作って一発でバックアップをとってみる

好きな場所で以下のコマンドを実行してみましょう。

$ nano growi_backup.sh

エディタ画面が表示されるので、以下の文章をコピペしましょう!!

{MongoDBのコンテナ名}と{保存したい場所のパス}を変更しましょう

#!/bin/sh

BKDIR={保存したい場所のパス}

# Creating backup archive
sudo docker exec -d {MongoDB の コンテナ名} mongodump --archive=mongodb.archive
sudo docker cp {MongoDB のコンテナ名}: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

終わるときは、Ctrl+x → y → enterで編集を終わりましょう

自動実行について

crontabにバックアップを取りたい時刻を設定し、スクリプトを実行しましょう

おそらく、このタイミングで、エディターの選択画面が出てくる時もありますので、適宜選択してください。

$ sudo crontab -e

下記を最後の行に追加して、保存をしましょう。

0 2 * * *  {shファイルがある絶対パス} CRON=1

これでアーカイブファイルが保存されました。

次回、リストア(復元編)でお会いしましょう。

GrowiWikiシリーズ

参考文献

参考にした記事を貼っていこう

主なURLリンク

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

dockerで動いているgrowiのmongodbをバックアップ・リストアする

Crone

Ubuntu で crontab から root 権限でコマンドを実行したい

crontabの書き方

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?