当前位置: 首页 > news >正文

mongodb数据备份脚本和日志切割脚本

mongodb数据备份脚本和日志切割脚本

1.登陆mongo
mongo --port=27018

2.创建管理用户:

db.createUser(
...  {
...  user: "root",
...    pwd: "Zytest2233",
...     roles: [ { role: "root", db: "admin" } ]
...  }
...  )

3.开启认证:

[root@cacti scripts]# cat /usr/local/mongodb/mongod.cnf 
logpath=/data/mongodb/logs/mongodb.log
logappend = true
#fork and run in background
fork = true
port = 27018
dbpath=/data/mongodb/data
#location of pidfile
pidfilepath=/data/mongodb/mongod.pid
auth = true
#keyFile = /tmp/mongo-keyfile
#nohttpinterface=true
#replSet=shard1

4.mongodb日志按天切割
mongodb日志默认写在一个文件,时间久了文件太大,用cron计划任务+脚本 可以实现按日期存放log

[root@cacti scripts]# cat /data/scripts/rotatelog.sh

#!/bin/bash
#mongodb client  use admin
cd /usr/local/mongodb/bin
MongoDB='./mongo 127.0.0.1:27018'
$MongoDB <<EOF
use admin
db.auth("root","Zytest2233")
db.runCommand( { logRotate : 1 } )
exit;
EOF

再用 crontab -e 打开加入如下内容,并保存:
59 23 * * * /bin/sh /data/scripts/rotatelog.sh

[root@cacti scripts]# ll /data/mongodb/logs/
total 76

-rw-r--r--. 1 root root   982 Feb  2 15:27 mongodb.log
-rw-r--r--. 1 root root 53353 Feb  2 15:14 mongodb.log.2018-02-02T07-18-39
-rw-r--r--. 1 root root  6163 Feb  2 15:21 mongodb.log.2018-02-02T07-22-02
-rw-r--r--. 1 root root  1849 Feb  2 15:27 mongodb.log.2018-02-02T07-27-02

5.mongodb数据库备份:
指定多个数据库来进行备份脚本:
脚本1:
[root@localhost ~]# cat /data/backup/mongobackup/test.sh

mongo 127.0.0.1:27018/admin -u root -p Zytest2233  << EOF
show dbs
exit;
EOF

脚本2:
[root@localhost ~]# cat mongoback.sh

#/bin/bash
source /etc/profile
user="root"
pass="Zytest2233"
port="28018"
Cmd="/usr/local/mongodb/bin/mongodump"
Bakdir=/data/backup/mongobackup
dbs="$(/bin/sh /data/backup/mongobackup/test.sh|sed '1,2d'|grep -v "local"|awk '{ print $1 }'|xargs -n4)"
Dump="$Cmd -uroot -p$pass --port=$port -d"
for n in $dbs
do
$Dump $n -o $Bakdir 
done

转载于:https://blog.51cto.com/wujianwei/2068233

相关文章:

  • 资讯丨Linux基金会一行到访腾讯参观交流
  • 《设计模式之禅》--代理扩展:动态代理
  • IOLI-crackme0x01-0x05 writeup
  • 思考|自动化测试面试题第一波
  • 算法学习之路|欧拉回路初见
  • python3 _笨方法学Python_日记_DAY1
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 提高开发效率之VS Code基础配置篇
  • 【301】IDL与C#混合编程
  • 小总结
  • 【18】万魂杀服务器开发之SDK接入
  • 12c broker fast-start failover - ORA-16820解决
  • Nginx配置——区分PC或手机访问不同域名
  • Eclipse MicroProfile 1.3现已发布
  • VTP的模式(思科)
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Angular 4.x 动态创建组件
  • Golang-长连接-状态推送
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Java深入 - 深入理解Java集合
  • linux安装openssl、swoole等扩展的具体步骤
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • mysql中InnoDB引擎中页的概念
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • React as a UI Runtime(五、列表)
  • 简单数学运算程序(不定期更新)
  • 你不可错过的前端面试题(一)
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 智能网联汽车信息安全
  • ###STL(标准模板库)
  • #Java第九次作业--输入输出流和文件操作
  • #WEB前端(HTML属性)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (转)Scala的“=”符号简介
  • (转)四层和七层负载均衡的区别
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • ./configure,make,make install的作用(转)
  • .gitignore文件—git忽略文件
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET 指南:抽象化实现的基类
  • .NET处理HTTP请求
  • @Responsebody与@RequestBody
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [CSS]CSS 的背景
  • [C和指针].(美)Kenneth.A.Reek(ED2000.COM)pdf
  • [ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: ‘tenant_name‘
  • [Kubernetes]2. k8s集群中部署基于nodejs golang的项目以及Pod、Deployment详解
  • [LeetCode]-225. 用队列实现栈-232. 用栈实现队列