Forum Freedom-IP

Forum d'entraide de la communauté Freedom-IP

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

#1 2014-02-05 15:38:41

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

Linux - Un petit conky

Bonjour à tous et toutes,
Je suis nouveau sur Freedom-IP, et tout jeune utilisateur de VPN.
Voici le premier outil que j'ai voulu réaliser.

Un conky tout bête, pas très beau, mais qui peut s'avérer très utile.

il donne trois informations :
- connexion sécurisée ou non (quand la connexion est non sécurisée l'info clignote)
- adresse IP
- nom du serveur utilisé

si l'on perd son adresse IP c'est qu'il y a eu un souci avec le serveur (enfin à ce que j'ai compris), donc dans ce cas il lance un petit script de reconnexion au serveur VPN.

voici les scripts

le conky
.conkyrc_VPN

# -- Conky settings -- #
background yes
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 280 100
maximum_width 310

alignment tr
gap_x 10
gap_y 100

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

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

TEXT
${if_up tun0}${color green}Connexion sécurisée${else}${color red}${blink Connexion non sécurisée}${endif}${color}
IP${goto 80}: ${if_empty ${execi 10 dig +short myip.opendns.com @resolver1.opendns.com}}${template0}${else}${exec dig +short myip.opendns.com @resolver1.opendns.com}${endif}
Serveur${goto 80}: ${execi 10 nmcli con status | awk 'BEGIN{} $4=="oui" && $5=="oui" {print $1} END{}'}

et le script bash
Freedom_ping.sh

#!/bin/bash
Hold_IFS=$IFS
IFS=$'\n'

########################################################################
#                                                                      #
# nous cherchons la connexion de base de l'ordinateur (non sécurisé),  #
# nous y connectons et enregistrons son IP pour plus tard              #
#                                                                      #
########################################################################
for ns in `nmcli -t -f NAME con status`; do
    nmcli con up id $ns
    IP_NS=`echo $(dig +short myip.opendns.com @resolver1.opendns.com)`
    break
done

########################################################################
#                                                                      #
# 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 $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 [[ $(dig +short myip.opendns.com @resolver1.opendns.com) != $IP_NS ]]; 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

exit 0

pour ma part je place tous mes scripts dans un dossier nommé scripts (étonnant comme idée   tongue )
mais vous pourrez le placer où bon vous semble, il suffira de modifier cette ligne dans le conky

template0 ${execp bash ~/scripts/Freedom-IP/Freedom_ping.sh}

l'utilisation d'un template permet si vous le souhaitez d'ajouter la fonction de connexion aux serveurs sécurisés à d'autres moments dans le Conky en ajoutant simplement

${template0}

une petite capture pour montrer le truc
1391610525.png

Je suis certain qu'il y a des artistes parmi nous qui en feront quelque chose de très beaux  wink

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

Dernière modification par Didier-T (2014-02-09 07:58:28)

Hors ligne

#2 2014-02-05 16:12:31

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

Re : Linux - Un petit conky

merci pour ce conky,
je sais pas pourquoi mais je sens que mes scripts vont vite devenir obsolète  devil


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-05 17:37:19

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

Re : Linux - Un petit conky

Belle initiative et bien pratique smile

Dommage que je ne puisse admirer l'écriture du script comme ljere  cry

Merci beaucoup.

Hors ligne

#4 2014-02-05 17:37:56

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

Re : Linux - Un petit conky

Salut ljere,
Et voila, je repond quoi a ça moi  devil
tes scripts me plaisent bien comme ils sont, et pour le moment je compte me concentrer sur les conkys.  cool

Edit : de rien Digitalin, pour ce qui est du script il est documenté au maximum pour en faciliter la lecture, mais si tu as la moindre question n'hésite pas.

Dernière modification par Didier-T (2014-02-05 17:45:44)

Hors ligne

#5 2015-10-09 19:06:07

Patrick1969
Membre
Inscription : 2015-01-23
Messages : 283

Re : Linux - Un petit conky

Bonsoir.
Sympa ce petit conky , je viens de l'installer .
Je m'interroge cependant sur quelques points , voici le premier :
Si je me déconnecte manuellement du vpn est ce que le script de reconnexion est fonctionel ou ,
est ce que le script n'entre en fonction que lorsque la panne vient du vpn ?
Voici le second :
Faut-il que je fasse un chmod +x au script bash ?
Voici le troisième :
Pourriez vous m'en dire un peu plus à propos de cette fonction ?

Didier-T a écrit :

l'utilisation d'un template permet si vous le souhaitez d'ajouter la fonction de connexion aux serveurs sécurisés à d'autres moments dans le Conky en ajoutant simplement


${template0}

D'avance merci , cordialement , Patrick1969


L'accès à ce forum reste un privilège et non un droit , n'oubliez pas que nous sommes une communauté et non pas un dû .

Hors ligne

#6 2015-10-14 09:39:21

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

Re : Linux - Un petit conky

Bonjour Patrick1969,
en fait je n'utilise plus ce script car il y avait des soucis avec networkmanager.
Si les soucis sont réglés, il devrait fonctionner.
Le plus simple est de lancer le conky connexion non sécurisée, il doit s'occuper de tout.
pour information il n'utilise que les serveurs renseignés dans networkmanager, pour ne pas lui faire perdre de temps je te conseille de ne laisser que ceux que tu utilise.

Pour ce qui est du template, en fait c'est un peut comme une fonction, on la défini dans la partie avant TEXT puis on l'appel ensuite, sa permet aux bidouilleur d'utiliser de longue chaine de commande sans avoir a les réécrire a chaque fois.

j’espère avoir répondu a tes questions.

A+,
Didier.

Hors ligne

#7 2015-10-14 11:31:23

Patrick1969
Membre
Inscription : 2015-01-23
Messages : 283

Re : Linux - Un petit conky

Bonjour Didier-T .
Merci de tes renseignements .
Le souci avec networkmanager avait- il ou a-t-il justement un lien avec la reconnexion automatique ?
Car je lance bien le conky avant ma connexion au vpn . L'affichage quant à lui fourni pourtant
bien les bonnes infos , en l'occurrence si je suis sécurisé ou pas , l'ip du serveur vpn sur lequel je suis connecté et son nom associé .
Seule la reconnexion n'est pas fonctionnelle , c'est moche , car j'aime bien ce petit conky .... cry
Bonne journée à toi , @+ , Patrick .

Proverbe chinois du jour : Lorsqu'un petit conky sympa tu feras et que la connexion automatique fonctionnera , un homme heureux
de Patrick tu feras ......   lol

Dernière modification par Patrick1969 (2015-10-14 13:43:39)


L'accès à ce forum reste un privilège et non un droit , n'oubliez pas que nous sommes une communauté et non pas un dû .

Hors ligne

#8 2015-10-20 20:54:22

Patrick1969
Membre
Inscription : 2015-01-23
Messages : 283

Re : Linux - Un petit conky

Bonsoir à tous , bonsoir Didier_T .
J'ai une bonne nouvelle   lol  , ton script fonctionne à merveille
à l'instant T .  Après plusieurs déconnexions provoquées , la reconnexion
se fait bien automatiquement à l'un des serveurs vpn .
L' erreur était mienne , en fait un ~ en moins dans une ligne de commande et hop
c'est la misère .... D'ailleurs si j'ai bien compris ce ~ remplace le /home , suis je dans le vrai ?
Le laps de temps qu'il faut au script pour remarqué la déconnexion est d'environ 9 à 12 secondes ,
y a t-il un moyen de réduire ce temps à environ 5 secondes ou cela dépend t-il du temps de réponse au ping ?
Je suis plutôt satisfait de ma config maintenant , une protection grâce au script à chico et une reconnexion auto grâce
à ton petit conky .  big_smile
Merci , cordialement , Patrick1969 .

Dernière modification par Patrick1969 (2015-10-21 09:26:07)


L'accès à ce forum reste un privilège et non un droit , n'oubliez pas que nous sommes une communauté et non pas un dû .

Hors ligne

Pied de page des forums