Api-Mocker
Api-Mocker
是 丁香园
前端团队开源的一款接口管理软件。集诸如阿里开源的Rap、Chrome的postman等接口相关工具的优点于一身。 github地址
生产环境部署
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #先安装好mongo(略)
#开始生产环境部署 git clone https://github.com/DXY-F2E/api-mocker
# make install将启动mongodb make install
vim client/config/index.js # 修改serverRoot: 'demo.domain.cn/mock-api' vim server/config/config.prod.js # 修改clientRoot: 'http://demo.domain.cn/mock'
make prod_client make prod_server
#配置密码加密加盐 vim server/config/config.default.js md5Key: 'demo-salt' #配置找回密码邮件发送 vim server/config/config.default.js transporter: { appName: 'Api Mocker', host: 'smtp.qq.com', secure: true, port: 465, auth: { user: 'demo@qq.com', pass: 'demo-auth-code' } } vim server/config/config.prod.js clientRoot: 'http://demo.domain.cn/mock'
|
Mongodb数据备份方案
部署 api-mocker
后服务一直运行,没有备份过数据。一次服务器断电重启后发现mongo的数据全部丢失。因此整个简单的备份方案。
有三种方案可以选择,参考方案选择。这里选用mongo自带的套装命令 mongodump
mongorestore
备份脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #!/bin/zsh MONGO_DATABASE="api-mock" APP_NAME="mongo-bak"
MONGO_HOST="127.0.0.1" MONGO_PORT="27017" TIMESTAMP=`date +%F-%H%M` MONGO="/opt/mongodb-linux-x86_64-3.0.6/bin/mongo" MONGODUMP="/opt/mongodb-linux-x86_64-3.0.6/bin/mongodump" BACKUPS_DIR="/var/backups/$APP_NAME" BACKUP_NAME="$APP_NAME-$TIMESTAMP"
# 锁库 $MONGO admin --eval "printjson(db.fsyncLock())" # 备份 $MONGODUMP -d $MONGO_DATABASE # 远程备份用下面注释的这条 # $MONGODUMP -h $MONGO_HOST:$MONGO_PORT -d $MONGO_DATABASE # 解锁 $MONGO admin --eval "printjson(db.fsyncUnlock())"
mkdir -p $BACKUPS_DIR mv dump $BACKUP_NAME tar -zcvf $BACKUPS_DIR/$BACKUP_NAME.tgz $BACKUP_NAME rm -rf $BACKUP_NAME
|
恢复数据
1
| mongorestore $mongo-bak-dir
|
mongo基本命令
用以下命令可以简单测试备份及数据恢复
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 进入mongo CLI mongo # 查询所有库 show dbs # 选择库 use $db-name # 查询所有集合 show collections # 查询集合中的所有文档 db.$col-name.find().pretty() # 删除集合中是所有文档 db.$col-name.remove({}) # 删除库 db.dropDatabase()
|
定时备份
1 2 3 4 5 6 7
| # 创建定时任务文件 crontab $cron-file-name # 写入规则每天0点、12点备份一次 vim $cron-file-name 0 0,12 */1 * * $backup-shell # 启动定时任务 crontab $cron-file-name
|
Tips
- 投入使用前最好先配置密码加密盐,以后配置用户密码迁移成本高
- 接口文档重写很操蛋,务必备份mongo数据!!!
- 太旧的备份文件最好也写个脚本定时清理一下