美文网首页
【mongoDB】mongoDB统计指定库中各表数据量大小

【mongoDB】mongoDB统计指定库中各表数据量大小

作者: Bogon | 来源:发表于2022-08-06 15:37 被阅读0次

    $ cat get_table_size.sh

    #!/bin/bash
    
    db="test"
    
    function mongo_login() {
      /path/to/bin/mongo  --quiet  --host xx.xx.xx.xx --port=27017 -u username --password='XXX' --authenticationDatabase=admin
    }
    
    
    tables=`echo -e "use ${db};\n show tables;"  | mongo_login | grep -v "switched to"`
    
    for  table in  ${tables}
     do
        echo  "${table}"
        size=`echo -e "use ${db};\n db.${table}.totalSize()" | mongo_login | grep -v  "switched to"`
        echo ${size} | awk '{size=$1/1024;if(size<1024){printf("%10.3f KB\t%s\n",size,$2);}else{size=size/1024;if(size<1024){printf("\033[36m%10.3f MB\t%s\n\033[0m",size,$2);}else{size=size/1024;if(size<1024){printf("\033[35m%10.3f GB\t%s\n\033[0m",size,$2);}else{size=size/1024;printf("\033[31m%10.3f TB\t%s\n\033[0m",size,$2);}}}}'
        echo ""
    done
    
    
    #!/bin/bash
    
    
    function mongo_login() {
      /path/to/bin/mongo  --quiet  --host xx.xx.xx.xx --port=27017 -u username --password='XXX' --authenticationDatabase=admin
    }
    
    dbs=`echo -e "use admin;\n show dbs;"  | mongo_login`
    
    for db  in  ${dbs}
      echo "############ ${db} ###########"
      tables=`echo -e "use ${db};\n show tables;"  | mongo_login | grep -v "switched to"`
      
      for table in  ${tables}
      do
        echo  "${table}"
        size=`echo -e "use ${db};\n db.${table}.totalSize()" | mongo_login | grep -v  "switched to"`
        echo ${size} | awk '{size=$1/1024;if(size<1024){printf("%10.3f KB\t%s\n",size,$2);}else{size=size/1024;if(size<1024){printf("\033[36m%10.3f MB\t%s\n\033[0m",size,$2);}else{size=size/1024;if(size<1024){printf("\033[35m%10.3f GB\t%s\n\033[0m",size,$2);}else{size=size/1024;printf("\033[31m%10.3f TB\t%s\n\033[0m",size,$2);}}}}'
        echo ""
    done
    
    

    注:此处mongo_login 如果定义成变量 ,用 ${mongo_login} 引用,会语法报错

    image.png image.png

    参考

    mongoDB统计库、表大小
    https://www.jianshu.com/p/e4ab13dded03

    Shell脚本获取MongoDB数据量大小
    https://www.yangxinghui.com/1450.html

    MongoDB查看数据库和表大小
    http://www.zhouqishan.cn/2015/07/29/mongodb%E6%9F%A5%E7%9C%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E5%92%8C%E8%A1%A8%E5%A4%A7%E5%B0%8F/

    Mongo库表占用空间统计
    https://www.cnblogs.com/mengrennwpu/p/14722867.html

    MongoDB-查看数据库和集合大小
    https://cloud.tencent.com/developer/article/1876450

    mongo 查看某个库下面每个集合的大小
    https://blog.csdn.net/qq_36470475/article/details/104928526

    相关文章

      网友评论

          本文标题:【mongoDB】mongoDB统计指定库中各表数据量大小

          本文链接:https://www.haomeiwen.com/subject/qaqvwrtx.html