使用 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

将远程输出发送dffile同时将服务器的杂物发送到/dev/null

相关内容