我正在研究需要防彈的檔案備份解決方案。我每周都運行備份,并且能夠在實際轉儲之前進行一次空運行,以確定要轉儲多少檔案。所以,我有一個目標號碼。
問題是,當我實際運行 mongodump 時,它會將所有輸出寫入 CONSOLE,而不是 stdout。所以我無法將輸出捕獲到變數,找到它轉儲的檔案數量,并與我的目標數量進行比較。
我也看過并且沒有看到任何使用 mongorestore 事后在檔案中獲取記錄數的方法。
不, wc -l 不起作用。
所以,這就是我在 mongodump 期間看到寫入控制臺的內容:
2022-03-03T22:25:15.069 0000 writing mydb.records to archive '/opt/weekly/records_2022-02-13'
2022-03-03T22:25:17.529 0000 mydb.records 101
2022-03-03T22:25:22.510 0000 mydb.records 1675
2022-03-03T22:25:22.513 0000 done dumping mydb.records (1675 documents)
以上將用于控制臺,我無法從我的腳本中捕獲它(即 varname=$(mongodumpcommandhere) ),我也無法將輸出重定向到 .log 檔案然后清理內容。
那么,那里的任何 mongo 專家都知道我該如何做我想做的事?當然,我已經檢查了 mongodump 命令的退出狀態,只是想加倍努力并排列檔案數量。
我可以安裝一個空白資料庫并加載轉儲并計算檔案,但這似乎有點遠,只是為了獲得轉儲中的檔案數量。尋找一些不那么蠻力的東西。
哦,這是一個處理所有邏輯的 bash 腳本。
uj5u.com熱心網友回復:
mongodumpcommandhere
可能正在寫入標準錯誤而不是標準輸出。如果是這樣的話
varname=$(mongodumpcommandhere 2>&1)
將作業。如果它不起作用,則可能意味著該命令正在直接寫入終端。這是一件壞事,但有辦法捕捉到它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/439470.html