Mongodb

將 Mongo 命令的輸出保存到變數 bash 腳本

  • March 16, 2021

我一直在編寫一個腳本來查找和終止慢速 mongodb 查詢,如何將 db.currentOp() 的輸出儲存在變數中?

目前我正在使用這個但失敗了

#! /bin/bash

out=""
mongo << EOF

out=db.currentOp();
EOF
echo"----------------------------"
echo"$out"

更新的腳本

#! /bin/bash

out=$(mongo --eval 'db.currentOp({op:"query"})')
echo"-----------------------"
echo"$out"

輸出

./kill_slow_mongo_queries.sh: line 4: echo-----------------------: command not found
./kill_slow_mongo_queries.sh: line 5: echoMongoDB shell version v3.6.8
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("ce96f3ee-f5e1-49b5-aeef-b5766328dda3") }
MongoDB server version: 3.6.8
{ "inprog" : [ ], "ok" : 1 }: No such file or directory

Mongo 命令有多個參數,在這種情況下很方便。

‘–eval’ 讓你執行命令,’–quiet’ 讓你遠離混亂

out=$(mongo --quiet --eval="db.currentOp()") ; echo $out

引用自:https://dba.stackexchange.com/questions/287020