У меня есть следующий скрипт:
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 , что является лучшим способом очистки данных, потому что он дает эти два файла:
для части ОЗУ Мне нужна только линия -/+ buffers/cache:
, а из части температуры - только температуры.
Вы должны быть в состоянии решить эту проблему, используя 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
В дополнение к доброму совету Брайса, нет необходимости запускать команду дважды:
free -mt | grep buffers/cache | tee -a memory.txt
sensors | grep °C | tee -a temp.txt
modinfo rt2800usb | grep -i 17e8
, говорят Вам? – chili555 4 August 2015 в 00:18