linux系统中实现mongodb3.0.5数据库自动备份

简介: <p>最近两天,因公司业务需要,要定期备份mongodb数据库中的数据。</p> <p>查了很多资料后,发现mongodb似乎并没有自带的定时备份功能,于是只好转移目标到linux系统的定时任务上,于是学习并使用了crontab,并成功定时备份。</p> <p>参考文档:<a target="_blank" href="http://blog.itpub.net/519536/view

最近两天,因公司业务需要,要定期备份mongodb数据库中的数据。

查了很多资料后,发现mongodb似乎并没有自带的定时备份功能,于是只好转移目标到linux系统的定时任务上,于是学习并使用了crontab,并成功定时备份。

参考文档:http://blog.itpub.net/519536/viewspace-659881/

                    http://www.linuxdiyf.com/viewarticle.php?id=4344

                    http://blog.csdn.net/love__coder/article/details/6890997

                    http://www.cnblogs.com/cosiray/archive/2012/03/09/2387361.html


我的实现过程大体上分了两步,一个是在root用户下,一个是其他非root用户。因为测试机上的mongodb等都是用的root用户,所以一开始迷迷糊糊的就直接操作了。

一、root用户下:

     1、环境:redhet 6.3

                mongodb安装目录:/mongodb305/mongodb305/bin

                mongdb中存在数据库admin,用户名admin,密码admin


     2、首先写了一个mongodb备份的脚本test.sh,并且在root目录下创建一个目录admin:

   [root@213 ~]# vi test.sh
   [root@213 ~]# mkdir /root/admin
    

     3、test.sh文件的内容如下:  (这里有两个命令,第一个命令后的分号不能少,至少我在操作的时候不加分号就不行)

   rm -rf /root/admin;
   /mongodb305/mongodb305/bin/mongodump --port 27017 -u admin -p admin -d admin -o  /root/admin
   ~
   ~
   ~
   ~
   ~
   -- INSERT --
     

     4、然后设置定时任务:

  [root@213 ~]# cd /etc/cron.d
  [root@213 cron.d]# ls
   0hourly  raid-check  sysstat
  [root@213 cron.d]# vi test

     5、test文件内容如下:(这里设置的是每五分钟自动备份一次)

  */5 * * * * root /root/test.sh

     6、然后执行crontab命令:

  [root@213 cron.d]# crontab test

     7、这样就可以了,之后ll查看/root/admin就可以看到每过5分钟,admin这个目录以及里边的内容都会改变一次

二、非root用户:

    1、环境:mongodb目录:/home/tuzongxun/mongodb306/mongodb305/bin

   

    2、创建admin目录,创建脚本test.sh并编辑:   

   [tuzongxun@213 ~]# mkdir /root/admin
   [tuzongxun@213 ~]# vi test.sh

 

  

    3、test.sh文件内容如下:

   rm -rf /home/tuzongxun/admin;
   /home/tuzongxun/mongodb306/mongodb305/bin/mongodump --port 27017 -u admin -p admin -d admin -o  /home/tuzongxun/admin
   ~
   ~
   ~
   ~
   ~
   -- INSERT --

    

    4、然后设置定时任务:

  [root@213 ~]# cd /etc/cron.d
  [root@213 cron.d]# ls
   0hourly  raid-check  sysstat test
  [root@213 cron.d]# vi test111

     5、test111文件内容如下:(这里设置的是每五分钟自动备份一次)

   */5 * * * * tuzongxun /home/tuzongxun/test.sh

     6、这里需要注意的是:如果这里使用的数据库就是刚才用root用户操作过的,那么有一些地方需要修改,否则任务将不能执行。

          例如:1、/tmp下的mongo开头的那些文件,还有mongodb数据存储目录下journal目录以及j._0文件;都要更改用户权限,否则将不能用非root用户启动mongodb

                      2、要在/etc中更改cron.allow文件,在里边加入需要使用的用户,例如:tuzongxun;

     7、执行crontab命令:

   [tuzongxun@213 cron.d]# crontab test111

 

三、以上两个操作的时候,test.sh文件默认不是可执行文件,需要赋予可执行权限。

       在使用crontab定时操作之前,为了验证test.sh文件是否能正确有效执行,可以先手动执行一次,确定没问题的情况下,再使用定时任务 。  


目录
相关文章
|
10月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
892 3
Linux系统禁用swap
|
10月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1469 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
959 3
Linux系统初始化脚本
|
11月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
687 18
|
10月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
1102 1
|
10月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1388 1
|
11月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
2567 10
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
12月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
1276 79
|
12月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
437 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉