linux下mongodbタイミングバックアップ指定のセット

2583 ワード

ターゲット:1台のlinuxマシン上のmongodbのデータをタイミングよく別のマシンにバックアップします.
プロセス:
最初はmongoexportとmongoimportを使おうとしたが、常に「x 00」文字列が認識できないという問題を報告し、後にmongodumpとmongorestartに変更し、目標を達成することに成功した.
(x 00の問題はまだ解決策を探している);
スクリプトコード:
# 
current=`date "+%Y-%m-%d %H:%M:%S"`;
timeStamp=`date -d "$current" +%s`;
# 
currentTimeStamp=$((timeStamp*1000));
# 
yestodayTimeStamp=$((currentTimeStamp-43*60*60*1000));
echo $current;
echo $timeStamp;
echo $currentTimeStamp;
echo $yestodayTimeStamp;
echo "File not exist!dump `date "+%Y-%m-%d %H:%M:%S"` $currentTimeStamp $yestodayTimeStamp" >>/home/admin/testlog.log
# 
/home/admin/mongodb305/mongodb305/bin/mongodump --port 47017 -u admin -p admin -d admin -c alarm -q '{"recTime":{$gte:'$yestodayTimeStamp',$lt:'$currentTimeStamp'}}' -o /home/admin/dumptest;
/home/admin/mongodb305/mongodb305/bin/mongodump --port 47017 -u admin -p admin -d admin -c filtering_alarm -q '{"recTime":{$gte:'$yestodayTimeStamp',$lt:'$currentTimeStamp'}}' -o /home/admin/dumptest;
/home/admin/mongodb305/mongodb305/bin/mongodump --port 47017 -u admin -p admin -d admin -c combine_alarm -q '{"recTime":{$gte:'$yestodayTimeStamp',$lt:'$currentTimeStamp'}}' -o /home/admin/dumptest;
/home/admin/mongodb305/mongodb305/bin/mongodump --port 47017 -u admin -p admin -d admin -c processed_alarm -q '{"recTime":{$gte:'$yestodayTimeStamp',$lt:'$currentTimeStamp'}}' -o /home/admin/dumptest
/home/admin/mongodb305/mongodb305/bin/mongorestore -h 192.168.0.213 --port 27017 -u admin -p admin -d admin -c alarm --keepIndexVersion --maintainInsertionOrder /home/admin/dumptest/admin/alarm.bson;
/home/admin/mongodb305/mongodb305/bin/mongorestore -h 192.168.0.213 --port 27017 -u admin -p admin -d admin -c filtering_alarm --keepIndexVersion --maintainInsertionOrder /home/admin/dumptest/admin/filtering_alarm.bson;
/home/admin/mongodb305/mongodb305/bin/mongorestore -h 192.168.0.213 --port 27017 -u admin -p admin -d admin -c combine_alarm --keepIndexVersion --maintainInsertionOrder /home/admin/dumptest/admin/combine_alarm.bson;
/home/admin/mongodb305/mongodb305/bin/mongorestore -h 192.168.0.213 --port 27017 -u admin -p admin -d admin -c processed_alarm --keepIndexVersion --maintainInsertionOrder /home/admin/dumptest/admin/processed_alarm.bson

crontabタイミングタスクコード:
39 10 * * * root /home/admin/dumptest2.sh

バックアップ後、条件に従って2つのmongodbのデータが一致していることを確認し、バックアップに成功しました.