使用 shell 腳本遠端使用 ssh 來了解磁碟空間

使用 shell 腳本遠端使用 ssh 來了解磁碟空間

我正在使用以下命令透過 ssh 遠端提取磁碟空間。但只想儲存輸出而不是所有其他訊息,如下所示;

有什麼幫助嗎?或任何替代解決方案?

ssh rajesh-server 'df -h /db* | cat' 2>&1

|-----------------------------------------------------------------|
| This system is for the use of authorized users only.            |
| Individuals using this computer system without authority, or in |
| excess of their authority, are subject to having all of their   |
| activities on this system monitored and recorded by system      |
| personnel.                                                      |
|                                                                 |
| In the course of monitoring individuals improperly using this   |
| system, or in the course of system maintenance, the activities  |
| of authorized users may also be monitored.                      |
|                                                                 |
| Anyone using this system expressly consents to such monitoring  |
| and is advised that if such monitoring reveals possible         |
| evidence of criminal activity, system personnel may provide the |
| evidence of such monitoring to law enforcement officials.       |
|-----------------------------------------------------------------|

Filesystem            Size  Used Avail Use% Mounted on
/dev/vx/dsk/xcv01_day/db01_day
                  200G  154G   44G  79% /db01_day
/dev/vx/dsk/xcvg01_day/db01_day
                  200G  154G   44G  79% /db01_day
 /dev/vx/dsk/xcvg01_day/db01_day
                  200G  154G   44G  79% /db01_day

答案1

「框中」中的所有文字都是由您的登入腳本產生的,而不是由命令產生的df。通常,如果.hushlogin您的主目錄中存在名為 的文件,則設定有登入訊息的伺服器將跳過顯示這些訊息。首先,嘗試建立該文件:

ssh rajesh-server "touch .hushlogin"

接下來,您不需要| cat在命令列中使用 ,或者很可能不需要 stderr 重定向。試試這個:

ssh rajesh-server 'df -h /db*'

如果您仍然收到文件所在位置的訊息.hushlogin,那麼您將需要解析您的輸出。這樣就可以做到:

ssh rajesh-server 'df -h /db*' | sed '/^|/d'

sed命令接受 ssh 命令的輸出,刪除以管道字元開頭的任何行,並列印其他所有內容。

請注意,您可能需要考慮使用專為此類任務建置的監視工具。許多存在,有些作為RRD工具前端。我最喜歡的是仙人掌穆寧。這些將繪製您的磁碟(或網路或其他)使用情況圖,以便您可以看到情況如何隨時間變化。

如果您想要一個在接近限制時向您發送警告的工具,請查看納吉奧斯,伊辛加或者札比克斯

答案2

ssh rajesh-server 'df -h /db*' > file 2> /dev/null

將遠端輸出傳送df到 ,file同時將伺服器的 cruft 傳送到/dev/null

相關內容