Forum Freedom-IP VPN

Forum d'entraide de la communauté Freedom-IP VPN

Vous n'êtes pas identifié(e).

#1 2014-02-08 15:22:04

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Conky Statistique serveur

-- Créé par Didier-T
require "io"
require "os"

local Version = "v1.01"
local infos_serveur = {}
local index_serveur = {}
local tc, num_serveur_actuel, script_parse, Don

-- Initialisation du script
function conky_FreedomIP_Init(script)
    -- On détermine le chemin vers le HOME
    local home = os.getenv("HOME")
    -- On remplace les symboles de raccourci système par le chemin HOME
    script = string.gsub(script, "~", home)
    script = string.gsub(script, "$HOME", home)
    script_parse=script
end

-- Fonction de découpage maison
function string:split(pat)
    -- Détermination du caractère séparant les champs pour le découpage
    -- Par défaut ce sera espace
    pat = pat or '%s+'
    local tab = {}
    local x=0
    for i in self:gmatch("([^"..pat.."]+)") do
        tab[x]=i
        x=x+1
    end
    return tab
end

function traitement()
    -- Lancement du script de récupération des infos
    local serveurs=conky_parse("${execp python "..script_parse.."}")
    local list_serveurs = {}
    local x=0
    -- Découpage des informations récupérées
    serveurs=serveurs:split("\n")
    for y in pairs(serveurs) do
        if serveurs[y]:find("Don") ~= nil then
            Don=serveurs[y]
        else
            list_serveurs[x]=serveurs[y]:split(",")
            x=x+1
        end
    end
    return list_serveurs
end

function conky_FreedomIP_Maj()
    -- le site actualise toutes les 5 minutes les infos, donc nous aussi
    if 300 <= os.difftime(os.time(), tc) or tc == nil then
        tc=os.time()
        -- on remplit le tableau infos_serveur qui aura deux dimensions
        -- la première correspond à un serveur
        -- la seconde a une information
        infos_serveur = traitement()
        collectgarbage()
    end
    local nom_serveur_actuel=conky_parse("${execp nmcli con status | awk 'BEGIN{} $4==\"oui\" && $5==\"oui\" {print $1} END{}'}")
    nom_serveur_actuel=nom_serveur_actuel:match("([%a%d]*)-%(")

    for x in pairs(infos_serveur) do
        local nom_serveur=infos_serveur[x][0]:match("%(([%a%d]*)%)")
        index_serveur[nom_serveur]=x
        if nom_serveur_actuel==nom_serveur then
            num_serveur_actuel=x
        end
    end
    return " "
end


-- Fonctions pour affichage dans le conky
-- Certaines infos ont encore besoin d'un petit traitement

function conky_FreedomIP_NomServeur(i)
    return infos_serveur[retour(i)][0]
end

function conky_FreedomIP_NbConnectes(i)
    return tonumber(infos_serveur[retour(i)][1]:match("(%d*)/%d*"))
end

function conky_FreedomIP_NbMaxConnectes(i)
    return tonumber(infos_serveur[retour(i)][1]:match("%d*/(%d*)"))
end

function conky_FreedomIP_UploadUtilise(i)
    return tonumber(infos_serveur[retour(i)][2]:match("(%d*.%d*)"))
end

function conky_FreedomIP_DownloadUtilise(i)
    return tonumber(infos_serveur[retour(i)][3]:match("(%d*.%d*)"))
end

function conky_FreedomIP_ChargeCPU(i)
    return tonumber(infos_serveur[retour(i)][4]:match("(%d*.%d*)%%"))
end

function conky_FreedomIP_RamUtilise(i)
    return infos_serveur[retour(i)][5]:match("(%d* %a*) / %d* %a*")
end

function conky_FreedomIP_RamTotal(i)
    return infos_serveur[retour(i)][5]:match("%d* %a* / (%d* %a*)")
end

function conky_FreedomIP_BandePassanteRest(i)
    return tonumber(infos_serveur[retour(i)][6]:match("(%d*.%d*) %a* / %d* %a*"))
end

function conky_FreedomIP_BandePassanteTotal(i)
    return tonumber(infos_serveur[retour(i)][6]:match("%d*.%d* %a* / (%d*) %a*"))
end

function conky_FreedomIP_Ping(i)
    return tonumber(infos_serveur[retour(i)][7]:match("(%d*.%d*)"))
end

function conky_FreedomIP_UpDepuis(i)
    return infos_serveur[retour(i)][8]
end

function retour(a)
    x=tonumber(a)
    if x==nil then
        x=index_serveur[a]
    end

    if x==-1 then
        x=num_serveur_actuel
    end
    return x
end

function conky_FreedomIP_Don()
    return tonumber(Don:match("(%d*.%d*)/%d* Euros"))
end

function conky_FreedomIP_DonCible()
    return tonumber(Don:match("%d*.%d*/(%d*) Euros"))
end

function conky_FreedomIP_Version()
    return Version
end

Dernière modification par Didier-T (2014-02-12 18:31:49)

Hors ligne

#2 2014-02-09 06:21:56

ljere
Membres de confiance
Inscription : 2012-04-22
Messages : 460

Re : Conky Statistique serveur

merci c'est vraiment super


AMD 3000+, nvidia FX5200 et 2 giga de ram sur Voyager 12.04 LTS en 32 bit
et TOSHIBA satellite_c670d-11l sur openbox/xubuntu 14.04 en 64 bit

Hors ligne

#3 2014-02-09 11:48:54

hmz
Administrateur
Inscription : 2013-03-21
Messages : 2 139

Re : Conky Statistique serveur

Toute les secondes !!!


If privacy is outlawed, only outlaws will have privacy.

Hors ligne

#4 2014-02-09 11:57:38

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Conky Statistique serveur

Hors ligne

#5 2014-02-09 12:31:20

David
Bof !!!
Inscription : 2012-01-30
Messages : 6 132

Re : Conky Statistique serveur

Bonjour ...

Je crois que hmz parle de votre update-interval qui est fixé à 1 seconde. Cela veut dir que si 10 personnes utilisent votre script, c'est 10 connexions constantes et supplémentaires par seconde en plus de ceux visitant notre site. Que cherchez vous à faire !? à rentre le site de Freedom-IP inaccessible !?

Cordialement, David.

Hors ligne

#6 2014-02-09 12:32:09

Digitalin
Contributeurs Confirmés
Inscription : 2013-10-10
Messages : 170

Re : Conky Statistique serveur

[== Indéfini ==]
######################
# - Conky settings - #
######################
update_interval 1
total_run_times 0
net_avg_samples 1
cpu_avg_samples 1
imlib_cache_size 0
double_buffer yes
no_buffers yes

#####################
# - Text settings - #
#####################
use_xft yes
xftfont Liberation Sans:size=10
override_utf8_locale yes
text_buffer_size 2048

#############################
# - Window specifications - #
#############################
own_window_class Conky
own_window yes
own_window_type normal
own_window_transparent yes
own_window_colour 333333 
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
alignment top_right
gap_x 15
gap_y 35
minimum_size 600 1
maximum_width 350 0 
default_bar_size 300 80 

#########################
# - Graphics settings - #
#########################
draw_shades no
default_color cccccc

##############
# - Colors - #
##############
color0 white
color1 D3D3D3 # Light Grey
color2 white
color3 999999 # Dark Grey
color4 900100 # Dark Red
TEXT
${font Liberation Sans:style=Bold:size=10}${color4}SYSTEM $stippled_hr${font}
##############
# - SYSTEM - #
##############
${color2}${voffset 6}${font OpenLogos:size=19}u${font}${color}${goto 32}${voffset -14}Kernel:  ${alignr}${color2}${kernel}${color}
${goto 32}Uptime: ${alignr}${color2}${uptime}${color}
# |--CPU
#${offset 1}${color2}${font Poky:size=16}P${font}${offset -19}${voffset 9}${cpubar cpu0 4,18}${color}${voffset -16}${goto 32}${goto 32}

CPU1:	${font Liberation Sans:style=Bold:size=10}${color1}${cpu cpu1}%${color}${font} ${alignr}${color3}${cpugraph cpu1 10,80 900100 ffffff}${color}
CPU2:	${font Liberation Sans:style=Bold:size=10}${color1}${cpu cpu2}%${color}${font} ${alignr}${color3}${cpugraph cpu2 10,80 900100 ffffff}${color}
CPU3:	${font Liberation Sans:style=Bold:size=10}${color1}${cpu cpu3}%${color}${font} ${alignr}${color3}${cpugraph cpu3 10,80 900100 ffffff}${color}
CPU4:	${font Liberation Sans:style=Bold:size=10}${color1}${cpu cpu4}%${color}${font} ${alignr}${color3}${cpugraph cpu4 10,80 900100 ffffff}${color}
CPU5:	${font Liberation Sans:style=Bold:size=10}${color1}${cpu cpu5}%${color}${font} ${alignr}${color3}${cpugraph cpu5 10,80 900100 ffffff}${color}
CPU6:	${font Liberation Sans:style=Bold:size=10}${color1}${cpu cpu6}%${color}${font} ${alignr}${color3}${cpugraph cpu6 10,80 900100 ffffff}${color}
CPU7:	${font Liberation Sans:style=Bold:size=10}${color1}${cpu cpu7}%${color}${font} ${alignr}${color3}${cpugraph cpu7 10,80 900100 ffffff}${color}
CPU8:	${font Liberation Sans:style=Bold:size=10}${color1}${cpu cpu8}%${color}${font} ${alignr}${color3}${cpugraph cpu8 10,80 900100 ffffff}${color}

# |--MEM
${color2}${font Poky:size=16}M${font}${color}${goto 32}${voffset -7}RAM: ${font Liberation Sans:style=Bold:size=8}${color1}$memperc%${color}${font}
${offset 1}${voffset 2}${color2}${membar 4,18}${color}${goto 32}${voffset -2}F: ${color2}${memeasyfree}${color} U: ${color2}${mem}${color}
# |--PROC
${voffset 2}${color2}${font Poky:size=15}a${font}${color}${goto 32}${voffset -10}Processes: ${color}${alignr 13}CPU${alignr}RAM${font}
${voffset -1}${goto 42}${color2}${top name 1}${color}${font Liberation Sans:style=Bold:size=8}${color1} ${goto 124}${alignr}${top cpu 1}${alignr }${top mem 1}${color}${font}
${voffset -1}${goto 42}${color2}${top name 2}${color}${font Liberation Sans:style=Bold:size=8}${color1} ${goto 124}${alignr}${top cpu 2}${alignr }${top mem 2}${color}${font}
${voffset -1}${goto 42}${color2}${top name 3}${color}${font Liberation Sans:style=Bold:size=8}${color1} ${goto 124}${alignr}${top cpu 3}${alignr }${top mem 3}${color}${font}
${voffset -1}${goto 42}${color2}${top name 4}${color}${font Liberation Sans:style=Bold:size=8}${color1} ${goto 124}${alignr}${top cpu 4}${alignr }${top mem 4}${color}${font}
${voffset -1}${goto 42}${color2}${top name 5}${color}${font Liberation Sans:style=Bold:size=8}${color1} ${goto 124}${alignr}${top cpu 5}${alignr }${top mem 5}${color}${font}
${voffset -1}${goto 42}${color2}${top name 6}${color}${font Liberation Sans:style=Bold:size=8}${color1} ${goto 124}${alignr}${top cpu 6}${alignr }${top mem 6}${color}${font}
${voffset -1}${goto 42}${color2}${top name 7}${color}${font Liberation Sans:style=Bold:size=8}${color1} ${goto 124}${alignr}${top cpu 7}${alignr }${top mem 7}${color}${font}
${voffset -1}${goto 42}${color2}${top name 8}${color}${font Liberation Sans:style=Bold:size=8}${color1} ${goto 124}${alignr}${top cpu 8}${alignr }${top mem 8}${color}${font}

#############
# - CLOCK - #
#############
${voffset 4}${font Liberation Sans:style=Bold:size=8}${color4}DATE $stippled_hr${font}
${voffset -10}${alignc 27}${color2}${font Arial Black:size=20}${time %H:%M}${font}${color}
${alignc}${time %d %B %Y}

##########
# - HD - #
##########
${voffset 4}${font Liberation Sans:style=Bold:size=8}${color4}HD $stippled_hr${font}
${execpi 29 ~/.conkycolors/bin/conkyHD2}

${font Liberation Sans:size=8}${color1}Root:${Offset 30} ${color1}Read: ${color2} ${diskio_read sda} ${goto 172} ${color1} Write: ${color2} ${diskio_write sda} 
${Offset 23} ${color3} ${diskiograph_read sda 10,80 900100 ffffff} ${alignr} ${diskiograph_write sda 10,80 900100 ffffff}
${font Liberation Sans:size=8}${color1}Backup:${Offset 17} ${color1}Read: ${color2} ${diskio_read sdb} ${goto 172} ${color1} Write: ${color2} ${diskio_write sdb}
${Offset 23} ${color3} ${diskiograph_read sdb 10,80 900100 ffffff} ${alignr} ${diskiograph_write sdb 10,80 900100 ffffff}

############
# - TEMP - #
############
#${voffset 4}${font Liberation Sans:style=Bold:size=8}${color4}Temp $stippled_hr${font}
#${font Liberation Sans:size=8}${color1}CPU(s):  	 ${font Liberation Sans:size=8}${color2}${execi 3000 sensors | grep temp1 | awk '{print $2}' | sed 's/+//g'}
#${font Liberation Sans:size=8}${color1}HDD 1:     ${font}${color2}${execpi 30 hddtemp  /dev/sda | cut -c36-41}	
#${font Liberation Sans:size=8}${color1}HDD 2:    ${font}${color2}${execpi 30 hddtemp  /dev/sdb | cut -c24-30}

###############
# - NETWORK - #
###############
${voffset 4}${font Liberation Sans:style=Bold:size=8}${color4}NETWORK $stippled_hr${font}
${alignc}${font Liberation Sans:style=Bold:size=8}${color1}${color1}${addr bond0}${font}

${color1}bond0 ${offset 25}Down: ${alignc}${font Liberation Sans:style=Bold:size=8}${color1}${downspeed bond0}${font} ${goto 172}Up: ${alignc}${font Liberation Sans:style=Bold:size=8}${color1}${upspeed bond0}${font} 
${alignr}${color3}${downspeedgraph bond0 12,80 900100 ffffff}									${alignr}${color3}${upspeedgraph bond0 12,80 900100 ffffff}

${color1}wlan0 ${alignr}${color3}${downspeedgraph wlan0 8,80 900100 ffffff}									${alignr}${color3}${upspeedgraph wlan0 10,80 900100 ffffff}
${color1}eth1 ${alignr}${color3}${downspeedgraph eth1 8,80 900100 ffffff}									${alignr}${color3}${upspeedgraph eth1 10,80 900100 ffffff}
${color1}eth2 ${alignr}${color3}${downspeedgraph eth2 8,80 900100 ffffff}									${alignr}${color3}${upspeedgraph eth2 10,80 900100 ffffff}

Hors ligne

#7 2014-02-09 12:58:04

ptit_poulet
Community Manager & Chef du support technique
Inscription : 2012-08-31
Messages : 3 102

Re : Conky Statistique serveur

Rafraichir toutes les 5min pour les infos qui changent beaucoup (nombre de connecté, charge...) me parait suffisant. Et pour les infos comme les dons, toutes les 10min est largement suffisant.


J'aime bien troller David toute la journée pour l’empêcher de s'ennuyer devil

Hors ligne

#8 2014-02-09 13:23:47

jojo1984
Membre
Inscription : 2014-01-19
Messages : 88

Re : Conky Statistique serveur

Bonjour,

Oui c'est clair ^^Bon je n'ai pas Linux mais ce principe de conky est très sympa ça me rappelle BGinfo sous windows. Par contre toutes les secondes ça fait un peu DDOS  glasses

Dernière modification par jojo1984 (2014-02-09 13:24:14)

Hors ligne

#9 2014-02-09 13:57:11

David
Bof !!!
Inscription : 2012-01-30
Messages : 6 132

Re : Conky Statistique serveur

Re ...

Exactement, et qui dit Ddos peut aboutir à un bannissement de l'adresse ip et donc le site et tous les services seront inaccessibles ... mais là, c'est à la responsabilité du membre ... solliciter les serveurs sauvagement est un grand manque de respect envers la communauté.

Cordialement, David.

Hors ligne

#10 2014-02-09 13:57:21

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Conky Statistique serveur

...
    -- le site actualise toutes les 5 minutes les infos, donc nous aussi
    if 300 <= os.difftime(os.time(), tc) or tc == nil then
        tc=os.time()
...

Dernière modification par Didier-T (2014-02-09 14:01:20)

Hors ligne

#11 2014-02-09 14:00:03

David
Bof !!!
Inscription : 2012-01-30
Messages : 6 132

Re : Conky Statistique serveur

Re ...

Je n'en doute pas ... et il m'arrive aussi que dans le feu de l'action (surtout en développement et test de debug) j'omets certains points essentiels, certains détails smile

Cordialement, David.

Hors ligne

#12 2014-02-09 14:00:16

hmz
Administrateur
Inscription : 2013-03-21
Messages : 2 139

Re : Conky Statistique serveur

Donner moi une semaine et je vais vous donner un moyen plus sécurisé et plus puissant pour faire ce vous voulez ... y compris récupérer la consommation de fairuse.  wink


If privacy is outlawed, only outlaws will have privacy.

Hors ligne

#13 2014-02-09 14:06:52

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Conky Statistique serveur

Dernière modification par Didier-T (2014-02-09 14:12:05)

Hors ligne

#14 2014-02-09 14:18:57

David
Bof !!!
Inscription : 2012-01-30
Messages : 6 132

Re : Conky Statistique serveur

Re ...

Et je vous avouerai que je ne suis pas rentré dans le détail de vos scripts devil

Sinon, oui, du XML est un choix judicieux car relativement simple pour l'analyse (parse).

Même si j'ai touche à LUA avec Ion3, le shell bah, c'est la base, le python (tout comme une 20aine d'autres langages) par curiosité ... et pour le fichier de configuration conky, merci les moteurs de recherche smile

Cordialement, David.

Hors ligne

#15 2014-02-09 14:21:04

hmz
Administrateur
Inscription : 2013-03-21
Messages : 2 139

Re : Conky Statistique serveur


If privacy is outlawed, only outlaws will have privacy.

Hors ligne

#16 2014-02-09 14:23:01

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Conky Statistique serveur

Dernière modification par Didier-T (2014-02-09 14:35:00)

Hors ligne

#17 2014-02-09 17:50:11

hmz
Administrateur
Inscription : 2013-03-21
Messages : 2 139

Re : Conky Statistique serveur

Fais moi une liste de ce que tu voudrais pouvoir récupérer. De plus, si un serveur n'est plus disponible alors il disparaît tout simplement de la liste.


If privacy is outlawed, only outlaws will have privacy.

Hors ligne

#18 2014-02-12 17:33:00

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Conky Statistique serveur

lua_load ~/scripts/Freedom-IP/Freedom.lua
lua_startup_hook FreedomIP_Init ~/scripts/Freedom-IP/Freedom.py

# Déclaration du template pour le script lua
template1 ${lua FreedomIP_\1 \2}
TEXT

${template1 Maj}
${template1 NomServeur NL} ${execi 300 host -4 nl1.freedom-ip.com | awk '{print $4}'} ${template1 NbConnectes NL}
${template1 NomServeur NL2} ${execi 300 host -4 nl2.freedom-ip.com | awk '{print $4}'} ${template1 NbConnectes NL2}
${template1 NomServeur NL3} ${execi 300 host -4 nl3.freedom-ip.com | awk '{print $4}'} ${template1 NbConnectes NL3}
${if_up tun0}${color green}Connexion sécurisée ${template1 NomServeur -1}${else}${color red}${blink Connexion non sécurisée}${endif}${color}

Hors ligne

#19 2014-02-12 18:11:06

Digitalin
Contributeurs Confirmés
Inscription : 2013-10-10
Messages : 170

Re : Conky Statistique serveur

Bonsoir,

Et bien,  cela répond bien à mes attentes.  cool
Je vais attendre un peu que les fichiers XML soient disponibles pour le tester. En effet, le temps peut être allongé.
Je me demandais si tu es bien celui qui a réalisé (ou collaboré au) le  conky de cette magnifique distribution: "Voyager" ?

Merci encore.
Bonne soirée.

Hors ligne

#20 2014-02-12 18:20:08

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : Conky Statistique serveur

si tu parle de conky-control, en effet il est de moi.

Hors ligne

Pied de page des forums