Сценарий контроля температуры и оперативной памяти

У меня есть следующий скрипт:

    while :
 do
        clear;
        echo "---------------------------RAM Load------------------------------$
        free -mt >> memory.txt;
        free -mt;
        echo "---------------------------Temperature---------------------------$
        sensors >> temp.txt;
        sensors;
        sleep 1;
        clear;
done

, который получает текущую системную память и температуру и записывает ее в два файла, соответственно memory.txt и temp.txt

Я хочу используйте эти данные на веб-сервере с Dygraphs , что является лучшим способом очистки данных, потому что он дает эти два файла:

memory.txt temp.txt

для части ОЗУ Мне нужна только линия -/+ buffers/cache:, а из части температуры - только температуры.

2
задан 14 February 2014 в 19:25

2 ответа

Вы должны быть в состоянии решить эту проблему, используя grep.

Чтобы получить только строку -/+ buffers/cache, измените ваши free команды на это:

free -mt | grep buffers/cache >> memory.txt;
free -mt | grep buffers/cache;

Чтобы получить только температуру, попробуйте:

sensors | grep °C >> temp.txt;
sensors | grep °C;

Поэтому, используя следующее script:

#!/bin/bash

clear;
echo "---------------------------RAM Load------------------------------$"
free -mt | grep buffers/cache >> memory.txt;
free -mt | grep buffers/cache;
echo "---------------------------Temperature---------------------------$"
sensors | grep °C >> temp.txt;
sensors | grep °C;

Выводит следующее:

---------------------------RAM Load------------------------------$
-/+ buffers/cache:       1545        449
---------------------------Temperature---------------------------$
Physical id 0:      N/A  (high = +100.0°C, crit = +100.0°C)
Core 0:             N/A  (high = +100.0°C, crit = +100.0°C)
Physical id 2:      N/A  (high = +100.0°C, crit = +100.0°C)
Core 0:             N/A  (high = +100.0°C, crit = +100.0°C)
aploetz@dockingBay94:~$

Для удаления лишнего текста, который вы не хотите, вы можете попробовать использовать awk.

$ free -mt | grep buffers/cache | awk '{print $3"\t"$4}'
1588    406

Температура будет немного сложнее, но это можно сделать с помощью tr.

$ sensors | grep Physical | tr -d '(),' | awk '{print $7"\t"$10}'
+100.0°C    +100.0°C
+100.0°C    +100.0°C

$sensors | grep Core | tr -d '(),' | awk '{print $6"\t"$9}'
+100.0°C    +100.0°C
+100.0°C    +100.0°C

Если вы хотите избавиться и от плюсов, просто добавьте «+» к флагу удаления:

$ sensors | grep Core | tr -d '(),+' | awk '{print $6"\t"$9}'
100.0°C 100.0°C
100.0°C 100.0°C
0
ответ дан 14 February 2014 в 19:25
  • 1
    @Pilot6 Там это; я отправил его. Что делает modinfo rt2800usb | grep -i 17e8, говорят Вам? – chili555 4 August 2015 в 00:18

В дополнение к доброму совету Брайса, нет необходимости запускать команду дважды:

free -mt | grep buffers/cache | tee -a memory.txt
sensors | grep °C | tee -a temp.txt
0
ответ дан 14 February 2014 в 19:25
  • 1
    That' s точно, как я раньше работал, прежде чем я удалил Windows! ;-) – Fabby 3 August 2015 в 19:20

Другие вопросы по тегам:

Похожие вопросы: