[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);}}}}'
mongo 查看某個庫下面每個集合的大小
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.