定时对数据库进行备份能够有效地保护数据html
在 MongoDB 中咱们使用 mongodump 命令来备份 MongoDB 数据mongodb
语法以下:shell
> mongodump -h dbhost -d dbname -o dbdirectory -u user -p password
-h MongDB所在服务器地址,例如:127.0.0.1,固然也能够指定端口号:127.0.0.1:27017数据库
-d 须要备份的数据库实例,例如:testcentos
-o 备份的数据存放位置,例如:c:datadump,固然该目录须要提早创建,在备份完成后,系统自动在dump目录下创建一个test目录,这个目录里面存放该数据库实例的备份数据。服务器
-u -p 若是有设置用户和密码,须要设置对应的用户名和密码,不然没有权限yii
mongodb 使用 mongorestore 命令来恢复备份的数据操作系统
>mongorestore -h <hostname><:port> -d dbname <path>
--host <:port>, -h <:port>:
MongoDB所在服务器地址,默认为: localhost:27017.net
--db , -d :
须要恢复的数据库实例,例如:test,固然这个名称也能够和备份时候的不同,好比test2rest
--drop:
恢复的时候,先删除当前数据,而后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
<path>:
最后的一个参数,设置备份数据所在位置,例如:c:datadumptest。
你不能同时指定 <path> 和 --dir 选项,--dir也能够设置备份目录。
--dir:
指定备份的目录
你不能同时指定 <path> 和 --dir 选项。
操做系统: Centos 7
#!/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_USER=user # 数据库密码 DB_PASS=password # 表明删除7天前的备份,即只保留近 7 天的备份 DAYS=7 # 最终保存的数据库备份文件 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 dbname -o $OUT_DIR/$DATE # 压缩格式为 .tar.gz 格式 tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE # 删除 15 天前的备份文件 find $TAR_DIR/ -mtime +$DAYS -delete exit
mkdir -p /home/backup/mongodb_bak/mongodb_bak_now mkdir -p /home/backup/mongodb_bak/mongodb_bak_list
chmod +x MongoDB_bak.sh
cron服务是Linux的内置服务,但它不会开机自动启动。能够用如下命令启动和中止服务:
/sbin/service crond start /sbin/service crond stop /sbin/service crond restart /sbin/service crond reload
以上1-4行分别为启动、中止、重启服务和从新加载配置。
要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 便可
查看当前用户的crontab,输入 crontab -l;
编辑crontab,输入 crontab -e;
删除crontab,输入 crontab -r
crontab -e
30 18 * * * /home/crontab/mongobk.sh
基本格式 :
* command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用或者 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
service crond start
chkconfig crond on