Bonjour,
Mon conky (inspiré de
ce conky ) :
use_xft yes
xftfont Liberation Sans:bold:size=10
#xftalpha 0.8
update_interval 2.5
total_run_times 0
own_window yes
#own_window_type override #marche pas sous openbox
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent yes
double_buffer yes
no_buffers yes
background no
own_window_colour hotpink
#contours des bargraph?
draw_graph_borders yes
#largeur maximale de la fenetre # valeurs identiques pour eviter les bugs
maximum_width 400
#largeur minimale de la fenetre # du texte de raffraichissement
minimum_size 280 5
draw_shades no
draw_outline no
draw_borders no
stippled_borders 5
border_margin 0
border_width 0
default_color green
default_shade_color white
default_outline_color white
alignment top_right
gap_x 20
gap_y 12
uppercase no
cpu_avg_samples 2
net_avg_samples 2
#override_utf8_locale yes
use_spacer right
out_to_console yes
TEXT
$alignc ${color white} Système client fonctionant depuis $uptime
${color #000080}$stippled_hr
${color gray}Fréquence CPU: ${color white}$freq ${color gray}Utilisation : ${color white}${cpu cpu1}%
${color #0000ff}${cpugraph cpu1 20,355 0000ff ff4500}
${color gray}Température CPU : ${color white}${exec sensors | grep temp1 | awk '{print $2}'} ${color gray}Température GPU : ${color white}${exec sensors | grep temp2 | awk '{print $2}'}
${color #000080}$stippled_hr
${color gray}Utilisation RAM : ${color gray} Totale Utilisée Pourcentage
${color white} $memmax $mem $memperc%
${color #0000ff}${memgraph 20,355 0000ff ff4500}
${color gray}Utilisation Swap : ${color white} $swap/$swapmax - $swapperc%
${color #00f5ff} ${swapbar}
${color #000080}$stippled_hr
${color gray}Internet:
${color gray}Reception:${color white} ${downspeedf eth0} k/s ${color gray}Envoi: ${color white}${upspeedf eth0} k/s
${color gray}Total:${color white} ${totaldown eth0} ${color gray}Total:${color white} ${totalup eth0}
${color #0000ff}${downspeedgraph eth0 20,170 0000ff ff4500} ${color #22ccff}${upspeedgraph eth0 20,170 0000ff ff4500}
${color #000080}$stippled_hr
${color gray}Systèmes de fichiers:
${color gray}Fedora9 : ${color white}/ ${color gray}Temp°: ${color white}${execi 10 hddtemp -n /dev/sda} °C
${color gray}Total: ${color white}${fs_size /} ${color gray}Utilisé: ${color white}${fs_used /} ${color gray}Libre: ${color white}${fs_free /}
${color #00f5ff}${fs_bar /}
${color gray}home : ${color white}/home ${color gray}Temp°: ${color white}${execi 10 hddtemp -n /dev/sda} °C
${color gray}Total: ${color white}${fs_size /home} ${color gray}Utilisé: ${color white}${fs_used /home} ${color gray}Libre: ${color white}${fs_free /home}
${color #00f5ff}${fs_bar /home}
${color #000080}$stippled_hr
${color gray}Procéssus : ${color white}$processes
${color #0000ff}En cours: $alignc PID CPU% MEM%
${color #ff4500} ${top name 1} $alignc ${top pid 1} ${top cpu 1} ${top mem 1}
${color white} ${top name 2} $alignc ${top pid 2} ${top cpu 2} ${top mem 2}
${color white} ${top name 3} $alignc ${top pid 3} ${top cpu 3} ${top mem 3}
${color white} ${top name 4} $alignc ${top pid 4} ${top cpu 4} ${top mem 4}
${color #0000ff}En mémoire:
${color #ff4500} ${top_mem name 1} $alignc ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${color white} ${top_mem name 2} $alignc ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${color white} ${top_mem name 3} $alignc ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
${color #000080}$stippled_hr
${if_existing /home/UserDuPC/.Autorun/PingServeurCentOSOK} $alignc ${color white} Système serveur fonctionnent depuis ${exec ssh ServeurCentOS uptime | awk '{print $3}'} min avec ${exec ssh ServeurCentOS uptime | awk '{print $5}'} users
${color gray}Disque dur 320 Go : ${color white}${execi 30 ssh ServeurCentOS hddtemp -n /dev/hda} °C
${color gray}Disque dur 400 Go : ${color white}${execi 30 ssh ServeurCentOS hddtemp -n /dev/hdb} °C
${color #000080}$stippled_hr $endif ${if_existing /home/UserDuPC/.Autorun/PingServeurCentOSOK_Multimedia}
${color gray}Multimedia : ${color white}/home/UserDuPC/Multimedia ${color gray}Temp°: ${color white}${execi 30 ssh ServeurCentOS hddtemp -n /dev/hdb} °C
${color gray}Total: ${color white}${fs_size /home/UserDuPC/Multimedia} ${color gray}Utilisé: ${color white}${fs_used /home/UserDuPC/Multimedia} ${color gray}Libre: ${color white}${fs_free /home/UserDuPC/Multimedia}
${color #00f5ff}${fs_bar /home/UserDuPC/Multimedia} $endif ${if_existing /home/UserDuPC/.Autorun/PingServeurCentOSOK_Logiciel}
${color gray}Logiciel : ${color white}/home/UserDuPC/Logiciel ${color gray}Temp°: ${color white}${execi 30 ssh ServeurCentOS hddtemp -n /dev/hda} °C
${color gray}Total: ${color white}${fs_size /home/UserDuPC/Logiciel} ${color gray}Utilisé: ${color white}${fs_used /home/UserDuPC/Logiciel} ${color gray}Libre: ${color white}${fs_free /home/UserDuPC/Logiciel}
${color #00f5ff}${fs_bar /home/UserDuPC/Logiciel} $endif ${if_existing /home/UserDuPC/.Autorun/PingServeurCentOSOK_Documents}
${color gray}Documents : ${color white}/home/UserDuPC/Documents ${color gray}Temp°: ${color white}${execi 30 ssh ServeurCentOS hddtemp -n /dev/hda} °C
${color gray}Total: ${color white}${fs_size /home/UserDuPC/Documents} ${color gray}Utilisé: ${color white}${fs_used /home/UserDuPC/Documents} ${color gray}Libre: ${color white}${fs_free /home/UserDuPC/Documents}
${color #00f5ff}${fs_bar /home/UserDuPC/Documents} $endif
L'affichage du monitoring de mon serveur est conditionné par l'existence de fichier (le test de montage ne me plaisais pas)
Le script qui suit, gère la création de ces fichiers ainsi que le montage nfs4
#/bin/sh
#Script de Renaud henry, libre de droit
#mail : renaudprogramme@gmail.com
#Fonction pour activer/déactiver l'affichage d'information dans conky de Multimedia
conkyMultimedia() {
if [ $1 -eq 1 ]; then
1>/home/UserDuPC/.Autorun/PingServeurCentOSOK_Multimedia
fi
if [ $1 -eq 0 ]; then
rm -f /home/UserDuPC/.Autorun/PingServeurCentOSOK_Multimedia
fi
}
#Fonction pour activer/déactiver l'affichage d'information dans conky de Logiciel
conkyLogiciel() {
if [ $1 -eq 1 ]; then
1>/home/UserDuPC/.Autorun/PingServeurCentOSOK_Logiciel
fi
if [ $1 -eq 0 ]; then
rm -f /home/UserDuPC/.Autorun/PingServeurCentOSOK_Logiciel
fi
}
#Fonction pour activer/déactiver l'affichage d'information dans conky de Documents
conkyDocuments() {
if [ $1 -eq 1 ]; then
1>/home/UserDuPC/.Autorun/PingServeurCentOSOK_Documents
fi
if [ $1 -eq 0 ]; then
rm -f /home/UserDuPC/.Autorun/PingServeurCentOSOK_Documents
fi
}
#Fonction pour activer/déactiver l'affichage d'information dans conky de l'affichage général
conkyG() {
if [ $1 -eq 1 ]; then
1>/home/UserDuPC/.Autorun/PingServeurCentOSOK
fi
if [ $1 -eq 0 ]; then
rm -f /home/UserDuPC/.Autorun/PingServeurCentOSOK
fi
}
#Fonction pour activer/déactiver le montage de Multimedia
mountMultimedia() {
#Pour éviter les message d'érreur, on teste que le montagen'est pas déja fais
chaine=$(ls /home/UserDuPC/Multimedia)
if [ -z "$chaine" ];then
if [ $1 -eq 1 ]; then
echo "Montage de ServeurCentOS:/Multimedia"
sudo mount ServeurCentOS:/Multimedia
else
echo "ServeurCentOS:/Multimedia déja monté"
fi
else
if [ $1 -eq 0 ]; then
echo "Démontage de ServeurCentOS:/Multimedia"
sudo umount ServeurCentOS:/Multimedia
else
echo "ServeurCentOS:/Multimedia déja démonté"
fi
fi
}
#Fonction pour activer/déactiver le montage de Logiciel
mountLogiciel() {
#Pour éviter les message d'érreur, on teste que le montagen'est pas déja fais
chaine=$(ls /home/UserDuPC/Logiciel)
if [ -z "$chaine" ];then
if [ $1 -eq 1 ]; then
echo "Montage de ServeurCentOS:/Logiciel"
sudo mount ServeurCentOS:/Logiciel
else
echo "ServeurCentOS:/Logiciel déja monté"
fi
else
if [ $1 -eq 0 ]; then
echo "Démontage de ServeurCentOS:/Logiciel"
sudo umount ServeurCentOS:/Logiciel
else
echo "ServeurCentOS:/Logiciel déja démonté"
fi
fi
}
#Fonction pour activer/déactiver le montage de Documents
mountDocuments() {
#Pour éviter les message d'érreur, on teste que le montagen'est pas déja fais
chaine=$(ls /home/UserDuPC/Documents)
if [ -z "$chaine" ];then
if [ $1 -eq 1 ]; then
echo "Montage de ServeurCentOS:/Documents"
sudo mount ServeurCentOS:/Documents
else
echo "ServeurCentOS:/Documents déja monté"
fi
else
if [ $1 -eq 0 ]; then
echo "Démontage de ServeurCentOS:/Documents"
sudo umount ServeurCentOS:/Documents
else
echo "ServeurCentOS:/DocumentsLogiciel déja démonté"
fi
fi
}
echo Test de connection ...
chaine=$(ping -c 1 ServeurCentOS)
if [ $? -eq 0 ];then
#On quitte le programme que si $choix=6
until [ ${choix} -eq 6 ]
do
choix=0
# On affiche le choix des actions :
until [ ${choix} -ge 1 -a ${choix} -le 6 ]
do
echo "1) configuration automatique de conky"
echo "2) Activer/Déactiver monitoring de conky"
echo "3) Montage automatique"
echo "4) Démontage automatique"
echo "5) Montage/Démontage manuelle"
echo "6) Quitter"
read choix
done
#configuration automatique de conky
if [ $choix -eq 1 ]
then
#On dit que le serveur est allumé
conkyG 1
#on teste les montage nfs4
#ServeurCentOS:/Multimedia
chaine=$(ls /home/UserDuPC/Multimedia)
if [ -n "$chaine" ];then
echo "ServeurCentOS:/Multimedia : Monté"
conkyMultimedia 1
else
echo "ServeurCentOS:/Multimedia : Démonté"
conkyMultimedia 0
fi
#ServeurCentOS:/Logiciel
chaine=$(ls /home/UserDuPC/Logiciel)
if [ -n "$chaine" ];then
echo "ServeurCentOS:/Logiciel : Monté"
conkyLogiciel 1
else
echo "ServeurCentOS:/Logiciel : Démonté"
conkyLogiciel 0
fi
#ServeurCentOS:/Documents
chaine=$(ls /home/UserDuPC/Documents)
if [ -n "$chaine" ];then
echo "ServeurCentOS:/Documents : Monté"
conkyDocuments 1
else
echo "ServeurCentOS:/Documents : Démonté"
conkyDocuments 0
fi
fi
#Activer/Déactiver monitoring de conky
if [ $choix -eq 2 ]
then
testconky=0
clear
until [ ${testconky} -eq 1 ]
do
echo "** Activer/Déactiver monitoring de conky **"
echo ""
echo "1--> activer, 2--> Déactiver 0--> quitter"
echo "Monitoring Générale / montage Logiciel / montage Multimedia / montage Documents"
echo ""
echo "exemple : 1222"
echo "Réponce : "
read Reponce
if [ ${Reponce} -ge 1111 -a ${Reponce} -le 2222 ]
then
vartest1=$(($Reponce / 1000))
echo "$vartest1=((Reponce / 1000))"
vartest2=$((($Reponce / 100) - ($vartest1 * 10)))
echo "$vartest2=($vartest1 * 10 - ($Reponce / 100)))"
vartest3=$((($Reponce / 10) -($vartest1 * 100) - ($vartest2 * 10)))
echo "$vartest3=((($vartest1 * 100) - ($vartest2 * 10) - ($Reponce / 10)))"
vartest4=$(($Reponce - ($vartest1 * 1000) - ($vartest2 * 100) - ($vartest3 * 10)))
echo "$vartest4=((($vartest1 * 1000) - ($vartest2 * 100) - ($vartest3 * 10) - $Reponce)))"
testconky=0
case $vartest1 in
1 )
echo "Activation Monitoring Général"
conkyG 1
;;
2 )
echo "Désactivation Monitoring Général"
conkyG 0
;;
* )
echo "Erreur '$vartest1' Monitoring Général"
testconky=2
;;
esac
case $vartest2 in
1 )
echo "Activation montage Logiciel"
conkyLogiciel 1
;;
2 )
echo "Désactivation montage Logiciel"
conkyLogiciel 0
;;
* )
echo "Erreur '$vartest2' montage Logiciel"
testconky=2
;;
esac
case $vartest3 in
1 )
echo "Activation montage Multimedia"
conkyMultimedia 1 #1>/home/UserDuPC/.Autorun/PingServeurCentOSOK_Multimedia
;;
2 )
echo "Désactivation montage Multimedia"
conkyMultimedia 0 #rm -f /home/UserDuPC/.Autorun/PingServeurCentOSOK_Multimedia
;;
* )
echo "Erreur '$vartest3' montage Multimedia"
testconky=2
;;
esac
case $vartest4 in
1 )
echo "Activation montage Documents"
conkyDocuments 1
;;
2 )
echo "Désactivation montage Documents"
conkyDocuments 0
;;
* )
echo "Erreur '$vartest3' montage Documents"
testconky=2
;;
esac
if [ $testconky -eq 0 ]
then
testconky=1
else
testconky=0
fi
else
if [ $Reponce -eq 0 ]
then
testconky=1
echo " Fin de programme"
else
testconky=0
echo "Reponce incorecte ('$Reponce')"
fi
fi
done
fi
#Montage automatique
if [ $choix -eq 3 ]
then
#Multimédia
mountMultimedia 1
#Logiciel
mountLogiciel 1
#Documents
mountDocuments 1
fi
#Démontage automatique
if [ $choix -eq 4 ]
then
#Multimédia
mountMultimedia 0
#Logiciel
mountLogiciel 0
#Documents
mountDocuments 0
fi
#5)Montage/Démontage manuelle
if [ $choix -eq 5 ]
then
testconky=0
clear
until [ ${testconky} -eq 1 ]
do
echo "** Montage/Démontage manuelle **"
echo ""
echo "1--> monter, 2--> Démonter 0--> quitter"
echo " montage Logiciel / montage Multimedia / montage Documents"
echo ""
echo "exemple : 1222"
echo "Réponce : "
read Reponce
if [ ${Reponce} -ge 111 -a ${Reponce} -le 222 ]
then
vartest2=$(($Reponce / 100))
echo "$vartest2"
vartest3=$((($Reponce / 10) - ($vartest2 * 10)))
echo "$vartest3"
vartest4=$(($Reponce - ($vartest2 * 100) - ($vartest3 * 10)))
echo "$vartest4"
testconky=0
case $vartest2 in
1 )
mountLogiciel 1
;;
2 )
mountLogiciel 0
;;
* )
echo "Erreur '$vartest2' montage Logiciel"
mountconky=2
;;
esac
case $vartest3 in
1 )
mountMultimedia 1
;;
2 )
mountMultimedia 0
;;
* )
echo "Erreur '$vartest3' montage Multimedia"
testconky=2
;;
esac
case $vartest4 in
1 )
mountDocuments 1
;;
2 )
mountDocuments 0
;;
* )
echo "Erreur '$vartest3' montage Documents"
testconky=2
;;
esac
if [ $testconky -eq 0 ]
then
testconky=1
else
testconky=0
fi
else
if [ $Reponce -eq 0 ]
then
testconky=1
echo " Fin de programme"
else
testconky=0
echo "Reponce incorecte ('$Reponce')"
fi
fi
done
fi
done
else
echo DNSServeurCentOS non connecté ...
rm -f /home/UserDuPC/.Autorun/PingServeurCentOSOK
rm -f /home/UserDuPC/.Autorun/PingServeurCentOSOK_Multimedia
rm -f /home/UserDuPC/.Autorun/PingServeurCentOSOK_Logiciel
rm -f /home/UserDuPC/.Autorun/PingServeurCentOSOK_Documents
fi
Après ce qui vas, ce qui ne fonctionne pas.
J'ai un problème, pour afficher l'uptime et le nombre de personnes connecté sur mon serveur.
Si l'uptime fait moins d'une heure :
$alignc ${color white} Système serveur fonctionnent depuis ${exec ssh ServeurCentOS uptime | awk '{print $3}'} min avec ${exec ssh ServeurCentOS uptime | awk '{print $5}'} users
donne :
Système serveur fonctionnent depuis 2 min avec 0 users
avec "ssh ServeurCentOS uptime" = "12:59:10 up 2 min, 0 users, load average: 1.44, 0.42, 0.14"
Si l'uptime fait plus d'une heure :
$alignc ${color white} Système serveur fonctionnent depuis ${exec ssh ServeurCentOS uptime | awk '{print $3}'} min avec ${exec ssh ServeurCentOS uptime | awk '{print $5}'} users
donne :
Système serveur fonctionnent depuis 2:47, min avec users, users
avec "ssh ServeurCentOS uptime" = "12:56:13 up 2:47, 0 users, load average: 0.19, 0.49, 0.52"
Conlusion :
Je vais rechercher pour afficher le charge du prossesseur, de la ram, et de la swap de mon serveur CentOS.
Question :
Commant faire pour afficher l'uptime et le nombe de personnes conectés correctement?