Ermitteln Sie den Speicherplatz per SSH aus der Ferne mithilfe eines Shell-Skripts

Ermitteln Sie den Speicherplatz per SSH aus der Ferne mithilfe eines Shell-Skripts

Ich verwende die folgenden Befehle, um den Speicherplatz per Remote-Zugriff per SSH zu extrahieren. Ich möchte aber nur die Ausgabe und nicht alle anderen Nachrichten wie unten speichern:

Irgendeine Hilfe? Oder eine alternative Lösung?

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

Antwort1

Der gesamte Text in der „Box“ wird von Ihren Anmeldeskripten und nicht vom dfBefehl generiert. Ein Server, der mit Anmeldenachrichten eingerichtet wurde, zeigt diese Nachrichten häufig nicht an, wenn .hushloginin Ihrem Home-Verzeichnis eine Datei mit dem Namen vorhanden ist. Versuchen Sie also zunächst, diese Datei zu erstellen:

ssh rajesh-server "touch .hushlogin"

Als nächstes benötigen Sie | cathöchstwahrscheinlich weder das in Ihrer Befehlszeile, noch die stderr-Umleitung. Versuchen Sie stattdessen Folgendes:

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

Wenn Sie die Nachrichten auch mit der .hushloginvorhandenen Datei erhalten, müssen Sie Ihre Ausgabe analysieren. Dies würde dies tun:

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

Dieser sedBefehl übernimmt die Ausgabe Ihres SSH-Befehls, löscht alle Zeilen, die mit einem Pipe-Zeichen beginnen, und druckt alles andere aus.

Beachten Sie, dass Sie wahrscheinlich die Verwendung eines Überwachungstools in Betracht ziehen sollten, das speziell für diese Art von Aufgabe entwickelt wurde. Es gibt viele davon, einige davonRRDToolFrontends. Meine Favoriten sindKakteenUndMunin. Diese stellen Ihre Festplattennutzung (oder Netzwerknutzung o. Ä.) grafisch dar, sodass Sie sehen können, wie sich die Dinge im Laufe der Zeit ändern.

Wenn Sie ein Tool möchten, das Sie warnt, wenn Sie sich den Grenzwerten nähern, schauen Sie sich anNagios,VereisungoderZabbix.

Antwort2

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

sendet die Remote- dfAusgabe an fileund den Datenmüll des Servers an /dev/null.

verwandte Informationen