[GrowiWiki]关于服务器备份的事项

菜单

    1. 关于MongoDB

 

    1. 关于实际操作指令

 

    关于定期执行

一开始

如果现在所使用的方法一旦消失了,会让人哭泣,所以要备份以确保安心!

先備知識

Mongo数据库

MongoDB是一种数据库,类似于MySQL。

MongoDB(モンゴDB)是一种以Server Side Public License(英语版)(SSPL)提供的面向文档的数据库。开发和支持由MongoDB Inc.负责。

引用:维基百科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}。

试着创建一个Shell文件来一次性备份。

我们在喜欢的地方尝试执行以下命令吧。

$ 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

文件已被保存为存档文件。

下次我们在“恢复”(Restore)节目中见面吧。

成长维基系列

 

文献引用

让我们贴出用作参考的文章。

主要的URL链接

如果不使用AWS,Growi的定期备份。

使用 Docker 运行的 GROWI MongoDB 进行备份和恢复。

巫婆 (wū pó)

我想在 Ubuntu 上使用 crontab 来以 root 权限执行命令。

crontab的书写方法如何?

广告
将在 10 秒后关闭
bannerAds