web-dev-qa-db-fra.com

Température et RAM script de surveillance

J'ai le script suivant:

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

qui récupère le système actuel RAM et la température et l'écrit dans deux fichiers, respectivement memory.txt et temp.txt

Je veux utiliser ces données sur un serveur Web avec Dygraphs quel est le meilleur moyen de nettoyer les données, car il donne ces deux fichiers:

memory.txttemp.txt

pour la partie RAM, je ne veux que la ligne -/+ buffers/cache: et, de la partie température, uniquement les températures.

2
Rumanoid

Vous devriez pouvoir résoudre ce problème en utilisant grep.

Pour obtenir uniquement la ligne -/+ buffers/cache, modifiez vos commandes free en ceci:

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

Pour obtenir uniquement les températures, essayez:

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

Donc, en utilisant le script suivant:

#!/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;

Produit cette sortie:

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

Pour supprimer le texte supplémentaire que vous ne voulez pas, vous pouvez utiliser awk.

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

Les températures seront un peu plus difficiles, mais peuvent être faites avec 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

Si vous souhaitez également vous débarrasser des avantages, ajoutez simplement '+' à l'indicateur de suppression:

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

En plus du bon conseil de Bryce, inutile d'exécuter la commande deux fois:

free -mt | grep buffers/cache | tee -a memory.txt
sensors | grep °C | tee -a temp.txt
1
glenn jackman