Forum d'entraide de la communauté Freedom-IP VPN
Vous n'êtes pas identifié(e).
Pages : 1
-- 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
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
Toute les secondes !!!
If privacy is outlawed, only outlaws will have privacy.
Hors ligne
Hors ligne
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
[== 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
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
Hors ligne
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
Dernière modification par jojo1984 (2014-02-09 13:24:14)
Hors ligne
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
...
-- 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
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
Cordialement, David.
Hors ligne
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.
If privacy is outlawed, only outlaws will have privacy.
Hors ligne
Dernière modification par Didier-T (2014-02-09 14:12:05)
Hors ligne
Re ...
Et je vous avouerai que je ne suis pas rentré dans le détail de vos scripts
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
Cordialement, David.
Hors ligne
If privacy is outlawed, only outlaws will have privacy.
Hors ligne
Dernière modification par Didier-T (2014-02-09 14:35:00)
Hors ligne
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
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
Bonsoir,
Et bien, cela répond bien à mes attentes.
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
si tu parle de conky-control, en effet il est de moi.
Hors ligne
Pages : 1