
我正在使用以下命令透過 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
。