mongo 定期备份脚本

一.定期备份脚本

在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。

mongodump命令可以通过参数指定导出的数据量级转存的服务器。

>mongodump -h dbhost -d dbname -o dbdirectory


参数解释:

-h:
MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017

-d:
需要备份的数据库实例,例如:test

-o:
备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。
 

以下是定期备份的脚本

#!/bin/sh
# dump 命令执行路径,根据mongodb安装路径而定
DUMP=/usr/bin/mongodump
# 临时备份路径
OUT_DIR=/home/backup/mongod_bak/mongod_bak_now
# 压缩后的备份存放路径
TAR_DIR=/home/backup/mongod_bak/mongod_bak_list
# 当前系统时间
DATE=`date +%Y-%m-%d`
#需要备份的数据库
DB_NAME=数据库名称
# 数据库账号
DB_USER=数据库账号
# 数据库密码
DB_PASS=数据库密码
# 代表删除15天前的备份,即只保留近 15 天的备份
DAYS=15
# 最终保存的数据库备份文件
TAR_BAK="mongod_bak_$DATE.tar.gz"
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS -d $DB_NAME -o $OUT_DIR/$DATE
# 压缩格式为 .tar.gz 格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
# 删除 15 天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete

exit

脚本解释:

# dump 命令执行路径,根据mongodb安装路径而定
DUMP=/usr/bin/mongodump
# 临时备份路径
OUT_DIR=/home/backup/mongod_bak/mongod_bak_now
# 压缩后的备份存放路径
TAR_DIR=/home/backup/mongod_bak/mongod_bak_list

二.Linux中使用crontab命令启用自定义定时任务

所有用户crontab文件都存放在 /var/spool/cron/ 目录下,以用户名命名。其中每一行都代表一项任务,每行的每个字段代表一项配置,它的格式一共分为六个字段,前五段是时间设置段,第六段是要执行的命令段,格式如下:

minute hour day month week command

  • minute: 表示分钟,可以是从0到59之间的任何整数

  • hour:表示小时,可以是从0到23之间的任何整数

  • day:表示日期,可以是从1到31之间的任何整数

  • month:表示月份,可以是从1到12之间的任何整数

  • week:表示星期,可以是从0到7之间的任何整数,这里的0或7代表星期日

  • command:表示需要执行的命令,可以是系统命令,也可以是自己编写的脚本文件

wKiom1f-447RkpcGAADq2h3iEls774.jpg

在以上各个字段中,还可以使用以下特殊字符:

  • *    代表所有可能的值,例如:如果month字段是星号,则表示在满足其它字段的约束条件后每月都执行该命令

  • ,     用逗号隔开的值表示一个范围列表,例如:如果minute字段的值是“1,3,15”,则表示每小时的第1分钟、第3分钟和第15分钟都执行该命令

  • –    可以用整数之间的 – 表示一个整数范围,例如:如果day字段的值是“2-6”,则表示每月的第2天到底6天都执行该命令

  • /    可以用斜线表示命令的执行频率,例如:如果minute字段的值是“*/10”,则表示每十分钟执行一次命令

三.其他(一个定时任务实例)

某台服务器每10分钟向192.168.1.2进行时间同步:

[root@web01 cron]# vim /var/spool/cron/root

添加以下内容:

0-59/10 * * * * /usr/sbin/ntpdate -s 192.168.1.2

 

从上面的介绍可以知道,这句代码的意思是:从0到59分这个时间段每10分钟都执行时间同步命令,其时间同步服务器是192.168.1.2

四 一些其他实例

实例1:每1分钟执行一次command
命令:
* * * * * command

实例2:每小时的第3和第15分钟执行
命令:
3,15 * * * * command

实例3:在上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 * * * command

实例4:每两天的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 */2 * * command

实例5:每个星期一的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 * * 1 command

实例6:每晚的21:30重启smb
命令:
30 21 * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb
命令:
45 4 1,10,22 * * /etc/init.d/smb restart

实例8:每周六、周日的1 : 10重启smb
命令:
10 1 * * 6,0 /etc/init.d/smb restart

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
命令:
0,30 18-23 * * * /etc/init.d/smb restart

实例10:每星期六的晚上11 : 00 pm重启smb
命令:
0 23 * * 6 /etc/init.d/smb restart

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值