L'Alliance Francophone > L'AFabric

Conky : Monitorer facilement son système sur son bureau sous Linux/BSD.

(1/2) > >>

Oncle Bob:
:hello:

Conky est un paquet linux qui permet d'afficher des choses en surimpression sur son bureau. C'est personnalisable à l'excès et c'est gratuit : pourquoi s'en priver quand on malmène sa machine avec BOINC ? :D

A quoi ça ressemble ?

A... ce que vous voulez. Et ça se programme avec un simple fichier type fichier texte. Dites vous que n'importe quelle info récupérable (température CPU, logiciel qui tourne, météo sur un site web...) peut-être affiché.

Un exemple : le bureau de mon petit laptop (15,4" de diagonale) :


On peut y voir deux espaces : un que j'ai dédié au réseau, l'autre au système proprement dit.

Commençons par décortiquer ce dernier.

J'ai choisi d'y afficher les infos suivantes :

[*] Premier bloc :
- Nom de la machine | Nom de l'OS
- Niveau de la batterie | kernel
- Uptime | charge moyenne

[*] Second bloc :

- Charge CPU
- Traduction graphique de cette charge (barre  qui se remplit)
- Charge, température et fréquence de chaque coeur (j'ai un petit Core2Duo :D )
- Top3 des processus consommant de la puissance CPU, avec leur PID pour pouvoir les gérer facilement ligne de commande (par exemple tuer un processus qui pomperait trop de puissance ou serait bloqué) et bien sûr charge CPU desdits processus.
- Encore un Top3 mais cette fois ci de la conso RAM.

[*] Troisième bloc :

- Température de mon disque dur
- Espace pris sur les différentes partitions/différents disques.

-----

Vient ensuite le second espace:

- Monitoring dynamique de la vitesse réseau en upload/download. N'est affiché que l'interface utilisée (ici Wifi, mais il y a aussi Ethernet lorsque celui-ci est branché).
- IP locale
- ESSID dans le cas du Wifi (c'est à dire le nom du réseau où je me connecte)
- Idem pour l'adresse MAC du point d'accès.
- La force du signal
- L'IP publique
- Le Biterate et enfin le mode sans fil. Ces deux dernière lignes sont anecdotiques et je pourrais bien m'en passer.


Ci-dessous les lignes de code des fichiers. Si ça vous intéresse et que vous voulez de l'aide pour faire le votre (ou simplement adapter les miens), n'hésitez pas :)


--- Code: ---background yes
double_buffer yes

alignment top_right

border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no

gap_x 330
gap_y 0
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no

own_window yes
own_window_type normal
own_window_transparent yes
own_window_colour 000000
own_window_argb_visual no
own_window_argb_value 0
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

minimum_size 170 50
stippled_borders 0
update_interval 2.0
uppercase no
use_spacer none

show_graph_scale no
show_graph_range no

use_xft yes
xftalpha 0.1
xftfont Droid Sans:size=10
color0 white
color1 EAEAEA
color2 FFA300
color3 grey

TEXT
${if_existing /proc/net/route ens5}
${color2}Download Eth ${color0}${alignr}${downspeedf ens5} KiB/s
${downspeedgraph ens5 60,}
${color2}Upload Eth ${color0}${alignr}${upspeedf ens5} KiB/s
${upspeedgraph ens5 60,}
${endif}
${if_existing /proc/net/route wls1}
${color2}Download Wifi ${color0}${alignr}${downspeedf wls1} KiB/s
${downspeedgraph wls1 60,}
${color2}Upload Wifi ${color0}${alignr}${upspeedf wls1} KiB/s
${upspeedgraph wls1 60,}
${endif}
${if_existing /proc/net/route ens5}${color2}Ethernet${color0}${alignr}${addr ens5}${endif}
${if_existing /proc/net/route wls1}${color2}Wifi${color0}${alignr}${addr wls1}
${color3}ESSID${color0}${alignr}${wireless_essid}
${color3}AP${color0}${alignr}${wireless_ap wls1}${wireless_ap ens5}
${color3}Signal${color0}${alignr}${wireless_link_qual_perc wls1}% ${alignr}${wireless_link_bar 8,60 wls1} ${else}${color3}Pas de signal${endif}
${color2}Public${color0}${alignr}${execi 3600 wget -q -O /dev/stdout http://checkip.dyndns.org/ | cut -d : -f 2- | cut -d \< -f -1}
${if_existing /proc/net/route wls1}${color3}Biterate${color0}${alignr}${wireless_bitrate wls1}
${color3}Wireless mode${color0}${alignr}${wireless_mode wls1}${endif}

--- Fin du code ---


--- Code: ---background yes
double_buffer yes

alignment top_right

border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no

gap_x 10
gap_y 0
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no

own_window yes
own_window_type normal
own_window_transparent yes
own_window_colour 000000
own_window_argb_visual no
own_window_argb_value 0
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

minimum_size 170 0
stippled_borders 0
update_interval 2.0
uppercase no
use_spacer none

show_graph_scale no
show_graph_range no

use_xft yes
xftalpha 0.1
xftfont Droid Sans:size=10
color0 white
color1 EAEAEA
color2 FFA300
color3 grey

TEXT
${color1}$nodename ${alignr}${color3}${execpi 1800 lsb_release -sd}
${color0}Battery : ${battery_percent}% ${alignr}${color3}Kernel : ${color3}$kernel
${color1}Uptime :${color} $uptime ${color1} ${alignr}Load :${color} $loadavg
${color3}$hr
${color2}CPU ${color0}${alignr}${cpu cpu0}%
${cpubar cpu0 5,}
CPU1: ${cpu cpu1}% | ${execi 30 sensors | grep 'Core 0' | cut -c16-17}C° $alignr ${exec awk '/cpu MHz/{i++}i==1{printf "%.f",$4; exit}' /proc/cpuinfo} MHz $alignr ${cpubar cpu1 8,60}
CPU2: ${cpu cpu2}% | ${execi 30 sensors | grep 'Core 1' | cut -c16-17}C° $alignr ${exec awk '/cpu MHz/{i++}i==2{printf "%.f",$4; exit}' /proc/cpuinfo} MHz $alignr ${cpubar cpu2 8,60}
${color3}Nom $alignr PID     %CPU
${color0}${top name 1} $alignr ${top pid 1} ${top cpu 1}%
${top name 2} $alignr ${top pid 2} ${top cpu 2}%
${top name 3} $alignr ${top pid 3} ${top cpu 3}%
CPU : ${hwmon 1 temp 2}C° M/B : ${hwmon 0 temp 3}C° ?
${color3}$hr
${color2}RAM ${color0}${alignr}${mem} / $memmax
${membar 5,}
${color3}Nom $alignr PID       Mem
${color1}${top_mem name 1} $alignr ${top_mem pid 1}  ${top_mem mem_res 1}
${top_mem name 2} $alignr ${top_mem pid 2}  ${top_mem mem_res 2}
${top_mem name 3} $alignr ${top_mem pid 3}  ${top_mem mem_res 3}
${color3}Swap    : ${color1}$swapperc% - $swap / $swapmax
${color3}Process : ${color1}$processes Running : $running_processes
${color3}$hr
${color2}HDD ${color0}${alignr}${color0}${alignr}${execpi 10 hddtemp -n /dev/sda}°C
System : ${fs_used /} / ${fs_size /}
Home : ${fs_used /home} / ${fs_size /home}
DATA (HDD) : ${fs_used /media/kit/DATA} / ${fs_size /media/kit/DATA}

--- Fin du code ---

Matt11:
Merci Oncle Bob pour cette présentation. J'avais repéré ce logiciel que je compte mettre en place bientôt sur ma machine.
Actuellement j'utilise GKRellM qui fait plus ou moins la même chose.

Oncle Bob:
Avec plaisir. :)

[AF>Libristes] Pascal:
Voici le mien, assez basique.



GuL:
Merci. J'avais testé il y a quelques temps, mais j'avais trouvé que c'était une usine à gaz. Au moins là il y a des fichiers d'exemple.

Il y a aussi munin qui permet d'enregistrer dans une base de donnée les températures, charge, etc.

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique