!/bin/bash
mongodump=/home/yangjian/mongodb/bin/mongodump—————-程序位置
curr_backup=/home/yangjian/Data-backup/mongoData———————-备份数据存储路径
today=date +%Y%m%d
yesterday=date -d "-3 day" +"%Y%m%d"—————————修改数据保留时间,-3为保留3天,可以根据自己的要求修改
log_file_dir=/home/yangjian/Data-backup/mongoLog——————日志存储路径

dbname=mongo
log_file=”${dbname}_bak
${today}.log”
tarfile=”${dbname}_bak${today}.tar.gz”

echo BEGAIN backup Mongo databases for CCTV AT date +"%Y-%m-%d %H:%M:%S" > $ logfile_dir/$log_file
$mongo_dump -h10.71.49.47:22003 -o $curr_backup/data———-备份机器的ip+端口
if [ $? = 0 ];then
echo success >>$log_file_dir/$log_file
else
echo fail >>$log_file_dir/$log_file
fi

tar -zcvf $curr_backup/data/$tar_file $curr_backup/data———在备份路径下需要有一个空文件夹data,不要删除这个空文件夹,删除会导致程序运行异常
mv $curr_backup/data/$tar_file $curr_backup
rm -rf $curr_backup/data/*
echo “Don’t delete this folder,because the program needs to call this director y.” >$curr_backup/data/README.txt
rm -rf $curr_backup/${dbname}_bak
${yesterday}.tar.gz

—————————————————————————————————-
1、数据库恢复
数据库恢复需要手动将指定日期和指定名称的数据库拷贝到指定数据库用机器上进行恢复。恢复步骤如下:
1)将指定文件拷贝到指定机器。
例如:将mongo恢复到2017年12月20日。在10.71.49.2:/home/yangjian/Data-backup/mongoData目录下找到此文件 mongo_bak_20171220.tar.gz,将此文件拷贝到指定机器上。
2)在指定机器上解压缩文件。
命令:tar -zxvf mongo_bak_20171220.tar.gz
解压后出现此目录:home/yangjian/Data-backup/mongoData/data/,此目录下还有两个目录,这俩个目录是两个mongo库,这个可以不用管,只记住这个目录就可以了。
mongodb备份脚本、恢复 - 图1
3)导入数据
命令:/usr/local/mongo/bin/mongorestore -h10.71.49.47:22003 —dir /home/yangjian/Data-backup/mongoData/data/
-h:后接ip:端口参数。
—dir:指定导入数据的路径。此路径就是上一步解压后的目录,指定到data就可以,不要写data下两个库的目录路径。