Mongodb
將 Mongo 命令的輸出保存到變數 bash 腳本
我一直在編寫一個腳本來查找和終止慢速 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