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:
pour la partie RAM, je ne veux que la ligne -/+ buffers/cache:
et, de la partie température, uniquement les températures.
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
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