#!/bin/bash
# $dbs will contain db names and sizes mixed together
# Use --quiet to skip connection information
dbs=$(mongo --quiet <<EOF
show dbs
quit()
EOF
)
i=0
for db in ${dbs[*]}
do
# Odd values are db names
# Even values are sizes
i=$(($i+1))
# Show db name, ignore size
if (($i % 2)); then
echo "$db"
fi
done
“show dbs”计算数据库大小,这可能需要一些时间。
您可以将此命令传递给 mongo shell,然后清除响应:
使用
--eval
参数这有点棘手,因为内置命令
show dbs
将显示具有大小的数据库。加上这个命令不能被eval
编辑。但是,可以使用 bash heredoc 语法传递命令。为了摆脱大小,只能显示偶数值。
跳过显示欢迎消息使用
--quiet
选项。结果脚本: