这些命令在不同的 Linux 发行版上会返回相同的输出吗?

这些命令在不同的 Linux 发行版上会返回相同的输出吗?

我正在写一个监控脚本。我正在一台特定的机器上运行它,并且它可以工作。它计划在多台 Linux 机器上运行,而不是绑定到单个发行版。

以下是我所做的命令和相关处理:
1)CPU使用率:

top -bn 2 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}'
92%
93% 

我记录了这两个值。

2)内存使用情况

free -m

_____total        used        free      shared buff/cache   available <br>
 Mem 3791        1183         875          16        1732        2326 <br>
 Swap 3071           0        3071

记录已使用的内存和交换空间/总计

3)磁盘使用情况:

df

(只保留第2列和第3列,分别是1024位块的总数和已使用的块):

 1K_blocks used_blocks
 27740944 1996820
  1931168       0
  1941352       0
  1941352   16904
  1941352       0
   508588  151576
   388272       0

我比较两列总和以获得总体磁盘空间。

4)正常运行时间:

PS C:\> invoke-sshcommand -ComputerName $ip {uptime}
09:39:01 up 13 days, 21:37,  1 user,  load average: 0,00, 0,01, 0,05

剪切该字符串并记录有用的数据。

无论 Linux 发行版如何,这些命令都会给出完全相同的输出形式吗? 更一般地说,命令+数据处理在任何发行版上仍然有效吗?

答案1

无论 Linux 发行版如何,这些命令都会给出完全相同的输出形式吗?

也许吧,但你不能确定。

有数百个 Linux 发行版(发行观察算起来有 280 个),并且您不能保证为一个脚本编写的一个脚本能够工作 - 或者能够工作继续工作 - 在另一个上,特别是如果它使用一些非 POSIX 选项或标志。

/proc您应该做的是直接从伪文件系统获取数据,而不是依赖命令的输出。

相关内容