Forum Freedom-IP

Forum d'entraide de la communauté Freedom-IP

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

Bonjour à tous,
Comme dit dans le sujet, je vous présente aujourd'hui un conky pour l'affichage des informations statistiques serveur disponible à cette page ci.
Ce conky fait suite à ce message de ljere, malheureusement pour Froyo, sa demande de conky pour le suivi du fairuse nécessite le passage d'un capatcha.

le conky utilise deux scripts pour fonctionner, un écrit en lua, le second en python.

Freedom.lua

-- 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

Freedom.py

#! /usr/bin/python
# -*- coding: utf-8 -*-
# Par Didier-T

from bs4 import BeautifulSoup
import mechanize

class Fonctions():
    def __init__(self):
        self.Main()

    def Main(self):
        #Récupération des données brut sur le site
        self.chargement()
        #mise en forme des données pour exploitation
        self.traitement()

    def chargement(self):
        #mise en place du service de cookie
        cookieJar = mechanize.CookieJar()
        opener = mechanize.build_opener(mechanize.HTTPCookieProcessor(cookieJar))
        #déclaration d'un explorateur internet dérivé de mozilla
        opener.addheaders = [("User-agent","Mozilla/5.0 (compatible)")]
        mechanize.install_opener(opener)
        #ouverture de la page à traiter et récupration de son contenu
        fp = mechanize.urlopen("https://freedom-ip.com/statistiques.php")
        texte=fp.read()
        fp.close()
        #pré-traitement de la page par BeautifulSoup
        self.soup=BeautifulSoup(texte)

    def traitement(self):
        #on isole les partie de la page qui nous intéresse
        self.serveur_info=self.soup.select("[class~=tr_stats]")
        self.serveur_details=self.soup.select("[class~=details_servers]")
        self.barre_de_don=self.soup.select("[class~=progress]")
        #création d'un tableau pour la récupération des données
        self.serveur=[]
        for i in range(len(self.serveur_info)):
            self.serveur.append([])
            #le page étant bien écrite il suffit de récupérer le texte brut
            #pour simplifier le traitement nous créons un tableau avec chaque ligne de texte
            list_text=self.serveur_info[i].get_text().split("\n")
            for text in list_text:
                #si la ligne est non vide elle nous intéresse
                if text != "":
                    self.serveur[i].append(text.rstrip().lstrip())
            list_text=self.serveur_details[i].get_text().split("\n")
            for text in list_text:
                #cette fois on filtre aussi INFO SERVEUR, qui ne nous apporte aucune info
                if text != "" and text !="INFO SERVEUR":
                    self.serveur[i].append(text.rstrip().lstrip())
            ################################################################################################
            #                                                                                              #
            # mise en forme des informations sur le serveur traité, le séparateur de serat ", "            #
            # ce qui permet un traitement simplifier avec awk par exemple                                  #
            #                                                                                              #
            ################################################################################################
            self.serveur[i]=",".join(self.serveur[i])
        # Traitement de la Barre de don
        Barre_de_don_text=self.barre_de_don[0].get_text().split("\n")
        for text in Barre_de_don_text:
            #si la ligne est non vide elle nous intéresse
            if text != "":
                Barre_de_don="Don = "+text.rstrip().lstrip()
        ################################################################################################
        #                                                                                              #
        # mise en forme des information sur les serveurs, ils seront séparer par des retour a la ligne #
        # pour la même raison que précédement                                                          #
        #                                                                                              #
        ################################################################################################
        self.serveur='\n'.join(self.serveur)
        # affichage des infos traitées, nous pourons le rediriger vers un fichier si besoins
        print(self.serveur.encode("utf-8"))
        print(Barre_de_don)
        # Code pour sortie fichier décommenter les quatres lignes en dessous pour sortie fichier

        #fiche = open("/tmp/Freedom.serveur", "w")
        #fiche.write(self.serveur.encode("utf-8"))
        #fiche.write(Barre_de_don.encode("utf-8"))
        #fiche.close()



def main():
    Fonctions()

if __name__ == '__main__':
    main()


.conkyrc

# -- Conky settings -- #
background no
update_interval 1

cpu_avg_samples 2
net_avg_samples 2
use_xft yes
override_utf8_locale yes

double_buffer yes
no_buffers yes

text_buffer_size 2048

# -- Window specifications -- #
own_window_argb_visual yes
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below

border_inner_margin 0
border_outer_margin 0

minimum_size 400 200


alignment tr
gap_x 10
gap_y 100

# -- Graphics settings -- #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders yes

# Initialisation du script Lua
lua_load ~/scripts/Freedom-IP/Freedom.lua
lua_startup_hook FreedomIP_Init ~/scripts/Freedom-IP/Freedom.py

# Changer le chemin du script si nécessaire
template0 ${execpi 20 bash ~/scripts/Freedom-IP/Freedom_ping.sh}

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

TEXT
${template1 Maj}
${if_up tun0}${color green}Connexion sécurisée${else}${color red}${blink Connexion non sécurisée}${endif}${color}
IP${goto 80}: ${template0}
Serveur${goto 80}: ${template1 NomServeur -1}
Connecté(s) : ${template1 NbConnectes -1}/${template1 NbMaxConnectes -1}
UP utilisé par la communauté : ${template1 UploadUtilise -1} Mo
Down utilisé par la communauté : ${template1 DownloadUtilise -1} Mo
Charge CPU serveur : ${template1 ChargeCPU -1}
Ram utilisé serveur : ${template1 RamUtilise -1} / ${template1 RamTotal -1}
Bande passante restante : ${template1 BandePassanteRest -1} Mo / ${template1 BandePassanteTotal -1} Mo
Ping : ${template1 Ping -1} ms
Fonctionne depuis : ${template1 UpDepuis -1}
Don sur le mois en cours : ${template1 Don} / ${template1 DonCible} Euros

ce script n'est pas nécessaire, mais il est présent dans le conky
Freedom_ping.sh (sert à ce reconnecter aux serveurs VPN)

#!/bin/bash

function Connexion(){
    Hold_IFS=$IFS
    IFS=$'\n'
    ########################################################################
    #                                                                      #
    # Nous regardons si un VPN est activé, si c'est le cas,                #
    # nous le fermons de manière à repasser sur la connexion par défaut    #
    # ça nous permettra de pouvoir calculer le ping vers les serveurs VPN  #
    #                                                                      #
    ########################################################################
    VPN=`nmcli con status | awk 'BEGIN{} $4=="oui" && $5=="oui" {print $1} END{}'`
    if [[ $VPN != "" ]]; then
        nmcli con down id $VPN
    fi

    ########################################################################
    #                                                                      #
    # Identification des serveurs Freedom-IP                               #
    # Et calcule rapide du ping de chacun d'eux afin de savoir             #
    # ou se connecter par la suite (Ping le plus rapide)                   #
    #                                                                      #
    ########################################################################
    i=0
    for con in `nmcli -t -f NAME con`; do
        serveur=`nmcli con list id "$con" | grep vpn.data | sed -e 's/^.*remote = //' -e 's/, .*$//'`
        if [[ $serveur != "" ]]; then
            ping[$i]=$(ping -c 3 -w 1 $serveur | awk -F "/" 'BEGIN{} $1 ~ /rtt/ {print $5} END{}')
            list[$i]=${ping[i]}","$con
            i=$i+1
        fi
    done

    ########################################################################
    #                                                                      #
    # Trie des serveurs dans l'ordre croissant des pings relevés           #
    #                                                                      #
    ########################################################################
    ping_trie=`{ IFS=$'\n';echo "${ping[*]}";} | sort -n`
    IFS=$Hold_IFS

    ########################################################################
    #                                                                      #
    # Tentative de connexion aux serveurs en commençant par le plus rapide #
    #                                                                      #
    ########################################################################
    for pt in ${ping_trie[*]}; do
        for l in ${list[*]}; do
            serveur=$(echo $l | awk -F "," "BEGIN{} \$1==$pt {print \$2} END{}")
            if [[ $serveur != "" ]]; then
                nmcli con up id $serveur &
                wait $!
            fi
        done
        # Si la connexion a fonctionné on sort de la boucle
        if [[ $(curl -s --interface tun0  myip.tdct.org) != "" ]]; then
            serveur_con=$(nmcli con status | awk 'BEGIN{} $4=="oui" && $5=="oui" {print $1} END{}')
            notify-send 'Freedom-IP:' "Connexion sécurisée établie au serveur $serveur_con" -i dialog-information
            break
        fi
    done
}

IP_VPN=`curl -s --interface tun0  myip.tdct.org`
if [[ $IP_VPN != "" ]]; then
    echo $IP_VPN
else
    echo "Reconnexion au VPN"
    Connexion
fi


exit 0

1391883653.png


pour utiliser les scripts, seul le conky est à modifier.

Quelles sont les infos disponibles ?

  1. Nom du serveur

  2. Nombre de personnes connectées au serveur

  3. Nombre de personnes maximum pouvant être connectées au serveur

  4. Upload Utilisé

  5. Download Utilisé

  6. Charge CPU Utilisé

  7. Ram Utilisé

  8. Ram total disponible

  9. Bande passante restant disponible

  10. Bande passante total

  11. Temps de réponse du serveur, depuis le site freedom-IP (attention ce ne sont pas même temps que de cher vous)

  12. Durée d'activité du serveur

  13. Dons actuels

  14. Dons cible

Comment y avoir accès ?

  1. ${lua FreedomIP_NomServeur x}

  2. ${lua FreedomIP_NbConnectes x}

  3. ${lua FreedomIP_NbMaxConnectesx}

  4. ${lua FreedomIP_UploadUtilise x}

  5. ${lua FreedomIP_DownloadUtilise x}

  6. ${lua FreedomIP_ChargeCPU x}

  7. ${lua FreedomIP_RamUtilise x}

  8. ${lua FreedomIP_RamTotal x}

  9. ${lua FreedomIP_BandePassanteRest x}

  10. ${lua FreedomIP_BandePassanteTotal x}

  11. ${lua FreedomIP_Ping x}

  12. ${lua FreedomIP_UpDepuis x}

  13. ${lua FreedomIP_Don}

  14. ${lua FreedomIP_DonCible}

Le x est à remplacer par un nombre actuellement compris entre -1 et 9, -1 étant le serveur sur lequel vous êtes connecté, ou bien par le nom court du serveur par exemple NL2 (attention à respecter la casse).
Je dis actuellement car le nombre maximum peut être amené à changer soit par l'ajout de serveur, soit par l'abandon de certains

J'espère avoir été suffisamant clair dans mes explications concernant l'utilisation de ce Conky, mais s'il y a la moindre question j'y répondrais avec plaisir.

A bientôt,
Didier-T

P.S. : Pour infos, la charge CPU de ce conky varie sur mon dual core 2.66 Ghz entre 0 et 1%, et il utilise 7 Mo de RAM

Edit : ajout des infos sur les dons

Edit du 09/02/2014 : modification du script Freedom_ping.sh, pour les connexions très lentes (ajout d'un wait)

Edit du 12/02/2014 : modification des scripts Freedom.lua (permettre de choisir les informations via le nom du serveur VPN) et Freedom_ping.sh (modification pour une intégration plus rationnelle a conky), ainsi que du conky
                                        Attention, le serveur NL se nomme NL1 sur la page HTML, donc il faut renommer sa connexion NL1-(Pays-Bas), je viens de voir le souci en me connectant dessus.

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

xamzab
SysOps
Inscription : 2013-03-21
Messages : 2 138

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

xamzab a écrit :

Toute les secondes !!!

Quoi ???

Hors ligne

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

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

Re : Conky Statistique serveur

Bonjour ...

Je crois que Xamzab 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.


C.G.U.                Règles

Hors ligne

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

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

Re : Conky Statistique serveur

Bonjour,

Génial et vraiment créatif cool , après ton premier billet sur le conky VPN.

Comme mon conky est déjà bien plein d'informations dont je me sers peu au final et que je veux pas couvrir mon bureau,  j'essaie d'imaginer le minimum vraiment utile à intégrer à mon conky actuel. Je n'utilise que 3  serveurs en général. Par exemple:

Sur une ligne, avoir pour chacun de ces serveurs :

  • Nom du serveur

  • IP

  • nombre de connectés

et en cas d'inactivité un message en couleur : "indisponible"

Et pour éviter la redondance d'informations et en reprenant le script de ton premier post,

  • avoir une ligne: connexion sécurisée suivie du nom du serveur

ou

  • avoir une couleur différente pour le VPN connecté dans la liste des serveurs

Au total 3 ou 4 lignes, sobre et facilement casable en bas dans la partie Network:

[== 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}

J'aimerais bien avoir ton avis smile

Amicalement,
Digitalin.

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 121

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.


C.G.U.                Règles

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

David a écrit :

Bonjour ...

Je crois que Xamzab 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.

Bonjour David,
Merci pour l'éclaircissement.

en fait, le conky rafraichit son affichage toutes les secondes en effet, mais le script ne met à jour qu'une fois toutes les 5 minutes.
comme ça si on le désire, il est possible de faire un conky plus général.

voici la partie qui gère les mises à jour.
dans Freedom.lua

...
    -- 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()
...

ne vous inquiétez pas je ne cherche pas à planter le serveur.

j'espère que j'ai pu vous rassurer

A bientôt,
Didier-T

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 121

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.


C.G.U.                Règles

Hors ligne

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

xamzab
SysOps
Inscription : 2013-03-21
Messages : 2 138

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

xamzab a écrit :

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.  ;-)

Je sens que tu vas faire des heureux
Une page XML, ce serait top... enfin fait comme tu veux.

Au fait, je ne sais pas si c'est toi qui as écrit les pages du site, mais si c'est le cas bravos, c'est la première fois que je travaille des pages si bien composées, ça fait plaisir smile


David a écrit :

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.

l'erreur est humaine, et c'est à ça que sert une communauté, à apprendre des autres. Même une question peut nous apprendre pas mal de choses.

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 121

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.


C.G.U.                Règles

Hors ligne

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

xamzab
SysOps
Inscription : 2013-03-21
Messages : 2 138

Re : Conky Statistique serveur

Merci pour votre message. J'avais déjà commencer à faire ça il y a un moment maintenant.

https://freedom-ip.com/statistiques.php?xml=1


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

xamzab a écrit :

Merci pour votre message. J'avais déjà commencer à faire ça il y a un moment maintenant.

https://freedom-ip.com/statistiques.php?xml=1

j'aime beaucoup  devil

@ Digitalin,
nous allons attendre un peu pour ton conky, je referais les scripts quand xamzab aura fini de son côté.
en plus je ne sais pas comment déterminer si un serveur est actif ou non, peut-être avec un ping, on verra

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

Hors ligne

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

xamzab
SysOps
Inscription : 2013-03-21
Messages : 2 138

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

Bonjour Digitalin,
j'avais un peu de temps à tuer aujourd'hui, et en attendant la page XML, je me suis dit que j'allais modifier l'existant pour te permettre de faire au moins en partie ce que tu souhaitais avec ton conky.
donc, nous disions :

  1. Nom du serveur

  2. IP

  3. nombre de connectés

  4. avoir une ligne: connexion sécurisée suivie du nom du serveur

pour l'état du serveur, pour le moment je ne sais pas comment faire, je n'en ai jamais vu en rideau, mais ça ne fait pas longtemps que je vous ai rejoint.

ça donnerait quelque chose de ce type

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}

nous pouvons aussi faire avec une ligne en moins pour avoir une couleur différente sur le serveur connecté.

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}
${if_match ${template1 NomServeur NL} == ${template1 NomServeur -1} }${color green}${template1 NomServeur NL} ${execi 300 host -4 nl1.freedom-ip.com | awk '{print $4}'} ${template1 NbConnectes NL}${color}${else}${template1 NomServeur NL} ${execi 300 host -4 nl1.freedom-ip.com | awk '{print $4}'} ${template1 NbConnectes NL}${end}
${if_match ${template1 NomServeur NL2} == ${template1 NomServeur -1} }${color green}${template1 NomServeur NL2} ${execi 300 host -4 nl2.freedom-ip.com | awk '{print $4}'} ${template1 NbConnectes NL2}${color}${else}${template1 NomServeur NL2} ${execi 300 host -4 nl2.freedom-ip.com | awk '{print $4}'} ${template1 NbConnectes NL2}${end}
${if_match ${template1 NomServeur NL3} == ${template1 NomServeur -1} }${color green}${template1 NomServeur NL3} ${execi 300 host -4 nl3.freedom-ip.com | awk '{print $4}'} ${template1 NbConnectes NL3}${color}${else}${template1 NomServeur NL3} ${execi 300 host -4 nl3.freedom-ip.com | awk '{print $4}'} ${template1 NbConnectes NL3}${end}

j'ai mis 5 minutes de délais entre les rafraichissements des IP pour les serveurs, tu peux à mon avis passer ce délai à bien plus long.

A+,
Didier-T

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