利用mongo export.sh 从mongo库中导出数据(备份)为json格式

mongoexport.sh
1.原始的:

skip=100000
for ((i=10200000; i<10500000; i+=$skip))
do
        start=$i
    end=$[$i+$skip]
    echo $start'_'$end
    /backup/etc/mongo/bin/mongoexport --host   IP地址   -d 具体的数据库名称  -c 哪一个collection  -q '{"blockNumber":{"$gt": '$start', "$lte": '$end'}}'  -o /保存的路径/etc_tx_$start'_'$end.json(保存的格式)
done

  • 这里的mongoexport.sh 是调用的别的文件夹下安装好的mongo
    172.26.178.248:27017


2.带authSource 的 mongoexport


#! /bin/bash
  
skip=100000
for ((i=10000000; i<10600000; i+=$skip))
do
        start=$i
        end=$[$i+$skip]
        echo $start'_'$end
        mongoexport --uri mongodb://账号:密码@mongo库地址/chain_info_etc(库名)?authSource=admin -c transactions(具体的collection) -q '{"blockNumber":{"$gt": '$start', "$lte": '$end'}}' -o /backup/etc/new_tx/etc_tx_$start'_'$end.json(保存路径+格式)
done
  • mongo库的 url 连接方式:


  • mongo的普通连接:



  • 注意,mongo库的地址参数!以及路径参数!以及块数参数!


  • 在同路径下有安装了mongo的话就可以直接用:mongoexport开始


  1. 导出btc数据脚本
#! /bin/bash
  
skip=100000
for ((i=1; i<1000000; i+=$skip))
do
        start=$i
        end=$[$i+$skip]
        echo $start'_'$end
        /backup/etc/mongo/bin/mongoexport --uri mongodb://btc:[email protected]:3717,s-8vbb1ba3aa777034.mongodb.zhangbei.rds.aliyuncs.com:3717/chain_info_btc?authSource=admin -c transaction -q '{"blockNumber":{"$gt": '$start', "$lte": '$end'}}' -o /backup/btc/new_tx/btc_tx_$start'_'$end.json
done

btc可测试导出脚本:

#! /bin/bash
  
skip=100000
for ((i=1; i<1000000; i+=$skip))
do
        start=$i
        end=$[$i+$skip]
        echo $start'_'$end
        /backup/etc/mongo/bin/mongoexport -h mongodb://btc:[email protected]:3717,s-8vbb1ba3aa777034.mongodb.zhangbei.rds.aliyuncs.com:3717/chain_info_btc?authSource=admin -c transaction -q '{"blockNumber":{"$gt": '$start', "$lte": '$end'}}' -o /backup/btc/new_tx/btc_tx_$start'_'$end.json
done

報錯:可能是数据库的btc的权限未开账号不可用!


测试在Xshell中手动导出:

mongoexport --uri mongodb://etc:[email protected]:3717,s-8vbb1ba3aa777034.mongodb.zhangbei.rds.aliyuncs.com:3717/chain_info_etc?authSource=admin -c transactions -q '{"blockNumber":{"$gt": '1', "$lte": '100000'}}' -o /backup/etc/new_tx_test/etc_tx_$start'_'$end.json

最后解决:
在 /home/linxiao目录下跑脚本就行



脚本在有道云
也可以将后缀.json 改为 .csv 就可以存为csv文件,但是经过测试:共388208条数据,存json大小为361MB,但是存为csv文件大小为525MB.

你可能感兴趣的:(利用mongo export.sh 从mongo库中导出数据(备份)为json格式)