自動備份遠程mongodb數據庫並拉取到本地


自動備份遠程mongodb數據庫並拉取到本地

目標:
遠程服務器 1.1.1.1 中運行mongodb數據庫,需要將 1.1.1.1中的mongodb數據拉回公司測試服務器中

1.遠程服務器中編寫自動備份mongodb腳本

①編寫腳本
# vim /opt/back_mongo.sh
#!/bin/bash

today_date=`date "+%Y%m%d"`
# 創建備份當天日期文件夾
mkdir $today_date
# 導出convert_v1_prod庫
/usr/local/mongodb-linux-x86_64-3.4.6/bin/mongodump -h 127.0.0.1 -u hichinasoftUser -p hichinasoft2018 -d convert_v1_prod -o /opt/mongo_back/$today_date/ --authenticationDatabase admin
# 導出chinasoft_v2_prod
/usr/local/mongodb-linux-x86_64-3.4.6/bin/mongodump -h 127.0.0.1 -u chinasoftPE -p chinasoftPE2017 -d chinasoft_v2_prod -o /opt/mongo_back/$today_date/ --authenticationDatabase admin
# 導出
/usr/local/mongodb-linux-x86_64-3.4.6/bin/mongodump -h 127.0.0.1 -u chinasoftonline -p chinasoftonline2018 -d data_hichinasoft_prod -o /opt/mongo_back/$today_date/ --authenticationDatabase admin

# 賦權,方便rsync進行拉取
chown -R apache.users /opt/mongo_back

# 刪除10天前的文件
find /opt/mongo_back/ -mtime +10 -exec rm -rf {} \;


②添加計划任務crontab -e

#### backup mongodb every day
10 05 * * * /bin/bash /opt/back_mongo.sh > /dev/null 2>&1

2.公司本地拉取mongo的備份,4個小時執行一次

# 計划任務
15,30,45 */4 * * * /bin/bash /opt/mongoback_tolocal.sh >/dev/null 2>&1

[root@localhost 2018-11]# vim /opt/mongoback_tolocal.sh
#!/bin/bash
SIP="1.1.1.1"

DATE="`date -d "${a} day" +%Y-%m`"
# 拉取遠程服務器 1.1.1.1 上 的 mongodb的備份 目錄到本地
/usr/bin/rsync -avrp -P --password-file=/data/www/.rsync/rsyncd.pass apache@${SIP}::apache/opt/mongo_back/ /data/mongo_back_local/

find /data/mongo_back_local/ -mtime +10 -exec rm -rf {} \;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM