mongo 查看某個庫下面每個集合的大小

[root@ip ~]# cat get_size.sh 
#!/bin/sh

MONGO=/usr/bin/mongo

function get_dbs() {
  $MONGO << EOF
show dbs
EOF
}

function get_tables() {
    # $1 is dbname
    DB=$1
    $MONGO  << EOF
use $DB ;
show tables;
EOF
}

function get_a_table_size() {
  DB=$1
  TABLE=$2
  $MONGO  << EOF
use $DB ;
db.$TABLE.totalSize()
EOF
}

function get_size() {
  for i in `get_tables $1 |head -n -1 |tail -n +5`
    do
      SIZE=`get_a_table_size $1 $i |sed -n 5p`
     echo "$SIZE $i"
    done
}
echo $1
get_size $1 | tail -n +2 | sort -r -n | 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);}}}}'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章