[GrowiWiki]关于服务器备份的事项
菜单
-
- 关于MongoDB
-
- 关于实际操作指令
- 关于定期执行
一开始
如果现在所使用的方法一旦消失了,会让人哭泣,所以要备份以确保安心!
先備知識
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的书写方法如何?