Script de monitoramento de temperatura e RAM

2

Eu tenho o seguinte script:

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

que obtém o sistema atual RAM e temperatura e grava em dois arquivos, respectivamente memory.txt e temp.txt

Eu quero usar esses dados em um servidor com Dígrafos qual é a melhor maneira de limpar os dados, porque eles fornecem esses dois arquivos:

memory.txt temp.txt

para a parte RAM Eu quero apenas a linha -/+ buffers/cache: e da parte da temperatura apenas as temperaturas.

    
por Rumanoid 14.02.2014 / 16:25

2 respostas

2

Você deve conseguir resolver esse problema usando grep .

Para obter apenas a linha -/+ buffers/cache , altere seus comandos free para isso:

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

Para obter apenas as temperaturas tente:

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

Usando o seguinte 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;

Produz esta saída:

---------------------------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:~$

Para remover o texto extra que você não deseja, você pode tentar usar awk .

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

As temperaturas serão um pouco mais complicadas, mas podem ser feitas com tr .

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

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

Se você quiser se livrar dos pontos positivos, basta adicionar '+' ao sinalizador de exclusão:

$ sensors | grep Core | tr -d '(),+' | awk '{print "\t"}'
100.0°C 100.0°C
100.0°C 100.0°C
    
por Aaron 14.02.2014 / 16:56
1

Além dos bons conselhos de Bryce, não há necessidade de executar o comando duas vezes:

free -mt | grep buffers/cache | tee -a memory.txt
sensors | grep °C | tee -a temp.txt
    
por glenn jackman 14.02.2014 / 17:19