Bonjour,
Je partage ici cette petite astuce pour faire ceci :
C'est basé sur l'applet indicator-sysmonitor déjà très connue. On va lui faire exécuter un script qui nécessite dstat. Il faudra aussi lm-sensors pour la température.
sudo add-apt-repository ppa:alexeftimie/ppa
sudo apt-get update
sudo apt-get install indicator-sysmonitor dstat lm-sensors
Paramétrage de lm-sensors :
sudo sensors-detect
Répondez "yes" à tout et notamment à la fin. Profitez-en pour repérer le nom des températures qui vous intéressent. Souvent la température du cpu s'appelle "coretemp".
Ensuite :
sudo modprobe <votre module>
Par exemple :
sudo modprobe coretemp
Voilà pour ce qui est des températures. Maintenant le script.
Si vous n'avez pas encore un répertoire pour vos scripts, c'est le moment de faire :
mkdir -p ~/scripts && cd ~/scripts
Et voici le fameux script à y mettre sous le beau nom de sysmon :
#!/bin/bash
#settings: 1 pour on, rien pour off
netspeed=1
ram=1
cpu=1
#-------------------------------------------------------
#---------------- initialize ---------------------------
> /tmp/.sysmon
dstat --net --mem --cpu --output=/tmp/.sysmon 1 1 > /dev/null 2>&1
ligne=$(tail -1 < /tmp/.sysmon)
ligne=( ${ligne//,/ } )
#----------- up/down speed -----------------------------
(( $netspeed )) && {
upspeed=$(bc <<< ${ligne[1]}/1024)
(( $upspeed>1024 )) && {
up1=$(bc -l <<< $upspeed/1024)
upkbmb=${up1:0:4}
} || {
upkbmb=${upspeed:0:3}
}
downspeed=$(bc <<< ${ligne[0]}/1024)
(( $downspeed>1024 )) && {
down1=$(bc -l <<< $downspeed/1024)
downkbmb=${down1:0:4}
} || {
downkbmb=${downspeed:0:3}
}
#---------------- up/down speed unit --------------------
(( $upspeed>1024 )) && upunit="Mo/s" || upunit="Ko/s"
(( $downspeed>1024 )) && downunit="Mo/s" || downunit="Ko/s"
}
#------------------- CPU % used -------------------------
(( $cpu )) && {
cpufree=${ligne[8]}
cpuused=$(bc <<< 100-$cpufree)
cpuused=${cpuused%.*}
}
#------------------- RAM % used --------------------------
(( $ram )) && {
while read
do
[[ $REPLY =~ buffers/cache ]] && {
free=( $REPLY )
memused=${free[2]}
memfree=${free[3]}
memtotal=$(( $memused+$memfree ))
memusedpercent=$(( 100-100*$memfree/$memtotal ))
break
}
done < <(free -m)
}
#------------------ The Indicator Sysmonitor actual output -
echo -n "${cpu:+| cpu: $cpuused% }\
${ram:+| mem: $memusedpercent% }\
| temp: $(sensors |grep 'Core 0:' |cut -b 16,17)°C \
${netspeed:+| net: ↓ $downkbmb $downunit - ↑ $upkbmb $upunit }\
|"
Notez d'ores et déjà que vous pouvez choisir au début du script (dans #settings) les options à afficher (netspeed, ram, cpu).
A la fin du script, une partie doit être modifiée selon votre configuration :
temp:" $(sensors |grep 'Core 0:' |cut -b 16,17)°C)
Ouvrez un terminal et tapez "sensors". La liste des sondes s'affiche. Repérez la température qui vous intéresse. Pour ma part, j'ai un processeur double coeur. Par souci de clarté, je ne vais afficher que la température d'un seul coeur. Je choisis le plus chaud, chez moi "core 0".
grep 'Core 0:' = sélectionne la ligne qui commence par "Core 0".
cut -b 16,17 = sélectionne les 2 chiffres qui forment la valeur de la température, chez moi il s'agit des caractères en position 15 et 16 en partant de la gauche.
Enfin, lancez l'applet :
indicator-sysmonitor
Et configurez-là : clic gauche dessus, preferences, "use this command" et remplissez le champ :
$HOME/scripts/sysmon
Et normalement c'est ok ;-)
Pour lancer l'applet au démarrage : touche windows, tapez "démarrage" pour lancer "Applications au démarrage", clic sur "ajouter", mettez le nom que vous voulez, et comme commande "indicator-sysmonitor". Voilà!
Base de travail :
http://www.webupd8.org/2011/05/how-to-display-network-upload-download.html
Script réécrit et optimisé par Levi59.
Merci à eux !