Будут ли эти команды возвращать одинаковый вывод в разных дистрибутивах Linux?

Будут ли эти команды возвращать одинаковый вывод в разных дистрибутивах Linux?

Я пишу скрипт мониторинга. Я запускаю его на определенной машине, и он работает. Планируется запустить его на нескольких машинах Linux, не привязанных к одному дистрибутиву.

Вот команды и соответствующие процедуры, которые я выполняю:
1) Загрузка ЦП:

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 (DistroWatchнасчитывается 280 из них) и вы не можете быть уверены, что скрипт, написанный для одного, будет работать - или будет работатьпродолжатьработать - на другом, особенно если он использует какую-то не-POSIX опцию или флаг.

Вместо того, чтобы полагаться на вывод команд, вам следует брать данные непосредственно из /procпсевдофайловой системы.

Связанный контент