mongodb常用命令脚本化-自动化运维
2015-03-04 14:34
495 查看
mongodb常用命令脚本化-自动化运维
把一些运维中常用到的mongodb命令写成shell脚本,极大的方便了维护1 设置副本集
#!/bin/bash#mongodb 进入client 并use admin
cd /usr/mongodb/bin
MongoDB='./mongo 192.168.1.7:37017'
$MongoDB <<EOF
use admin
rsconf={
"_id" : "Job001",
"members" : [
{
"_id" : 0,
"host" : "192.168.1.7:37017"
}
]
}
rs.initiate(rsconf)
rs.add("192.168.1.8:37017")
rs.add("192.168.1.9:37017")
exit;
EOF
注释:把上面的内容写入***.sh文件中 chmod 777 ***.sh 赋给权限
在linux > sh ***.sh 即可完成那些命令
下同
2 修改副本集的设置
#!/bin/bash#mongodb 进入client 并进入primary
cd /usr/mongodb/bin
MongoDB='./mongo 192.168.1.7:37017'
$MongoDB <<EOF
use MongoModelJobResume
#rs.status()
cfg=rs.conf()
cfg.members[0].priority=99
cfg.members[1].priority=50
cfg.members[2].priority=30
rs.reconfig(cfg)
rs.conf()
exit;
EOF
3 把一个表转到临时表,再copy回来,这样oplog中就会重新生成完整的log
(前提oplog 的size要足够大)#!/bin/bash
#mongodb 进入client 并进入primary
cd /usr/mongodb/bin
MongoDB='./mongo 192.168.1.7:37017'
$MongoDB <<EOF
use MongoModelJobResume
rs.remove("192.168.1.8:37017")
rs.remove("192.168.1.9:37017")
db.tbJobResume.renameCollection("tbJobResumeOld")
db.tbJobResumeOld.copyTo("tbJobResume")
rs.add("192.168.1.8:37017")
rs.add("192.168.1.9:37017")
#db.tbJobResumeOld.drop()
exit;
EOF
4 按日期生成mongodb日志
mongodb日志默认写在一个文件了,时间久了查看等很不方便,用cron计划任务+脚本 可以实现按日期存放log# rotatelog.sh 用下面的内容生成这个文件 chmod 777 rotelog.sh 赋予权限
#!/bin/bash
#mongodb client use admin
cd /usr/mongodb/bin
MongoDB='./mongo 192.168.1.7:37017'
$MongoDB <<EOF
use admin
db.runCommand( { logRotate : 1 } )
exit;
EOF
再用 crontab -e 打开(没有就新建) 加入如下内容,并保存 (该文件路径在 /var/spool/cron/root/)
59 23 * * * /bin/sh /usr/mongodb/config/rotatelog.sh
这样的话每天晚上23点59分的时候就会把当天的日志以***日期.log的方式另存,原来的log文件会清空
5 MongoDB数据库自动备份还原的脚本
-----自动备份mongodb数据并压缩---#!/bin/bash
filename=`date +%Y%m%d%H`
backmongodbFile=mongodb$filename.tar.gz
cd /home/mongo/back/
/usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoDBAgent -o mongodb_dump/
/usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoDBBg -o mongodb_dump/
/usr/mongodb/bin/mongodump -h 192.168.1.7 -port 37017 -d MongoModelActor -o mongodb_dump/
tar czf $backmongodbFile mongodb_dump/
rm mongodb_dump -rf
-----自动解压并还原mongodb数据---
#!/bin/bash
filename='20150330013'
backmongodbFile=mongodb$filename.tar.gz
cd /home/mongo/back/
tar zxvf $backmongodbFile
/usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoDBAgent mongodb_dump/MongoDBAgent
/usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoDBBg mongodb_dump/MongoDBBg
/usr/mongodb/bin/mongorestore -h 192.168.1.6 -port 37017 --drop -d MongoModelActor mongodb_dump/MongoModelActor
rm mongodb_dump -rf
相关文章推荐
- mongodb常用命令脚本化-自动化运维
- mongodb常用命令脚本化-自动化运维
- (转)mongodb常用命令脚本化-自动化运维
- 自动化运维工具Ansible实战(三)常用的配置和相关命令
- MongoDB常用命令
- mongodb常用命令
- mongodb常用管理命令
- linux运维常用命令一句话
- 初识MongoDB 常用命令
- 工程师追查线上问题(或运维)常用的shell命令(http://www.cnblogs.com/clam/archive/2012/03/29/2423084.html)
- linux运维常用命令一句话(持续更新中)
- 初识MongoDB 常用命令
- 运维常用命令(不断更新中)T_T
- linux运维常用命令
- 工程师追查线上问题(或运维)常用的shell命令
- MongoDB实战全攻略(含安装常用命令备份恢复及主从(含副本集合)部署)
- 转载 mongodb常用命令
- MongoDB常用的操作命令(转)
- 系统运维常用命令
- linux运维常用命令