Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/01/2014, à 16:13

David74

Résolu - Création d'un script avec une condition

Bonjour,

j'ai un léger problème avec mail-notification : il démarre, lorsque j'allume le PC, avant la connexion réseau. De plus, il m'arrive aussi de travailler hors-connexion, situation dans laquelle mail-notification cherche sans rien trouver, mais mobilise ainsi jusqu'à 50 %, voire plus, de CPU, et ce inutilement (je dois alors tuer la tâche manuellement).
Je voudrais donc créer un petit script qui permette de ne démarrer mail-notification que si une connexion réseau est opérationnelle, script que je mettrai en démarrage automatique en lieu et place de mail-notification.
Quelle serait la commande à mettre derrière "if", pour vérifier la connexion réseau ?
D'avance merci.

Dernière modification par David74 (Le 17/01/2014, à 00:36)

Hors ligne

#2 Le 15/01/2014, à 16:21

Compte anonymisé

Re : Résolu - Création d'un script avec une condition

Bonjour David74,

Si l'interface se nomme wlan0 par exemple :

if [ "`cat /proc/net/dev | grep wlan0`" != "" ] ; then 
  echo "Connexion ok"
else 
  echo "Connexion ko"
fi

#3 Le 15/01/2014, à 16:24

David74

Re : Résolu - Création d'un script avec une condition

OK, merci, je vais commencer à écrire un truc avec ça, je reviens si je mouline... Juste, est-ce que je peux mettre un "or" (ou bien) dans la commande après "if", parce qu'il faudrait qu'il me teste wlan0, mais aussi eth0, et ce à chaque fois ?

Dernière modification par David74 (Le 15/01/2014, à 16:25)

Hors ligne

#4 Le 15/01/2014, à 16:35

Compte anonymisé

Re : Résolu - Création d'un script avec une condition

Comme ça alors :

if [ "`cat /proc/net/dev | grep \"wlan0\|eth0\"`" != "" ] ; then 
  echo "Connexion ok"
else 
  echo "Connexion ko"
fi

#5 Le 15/01/2014, à 16:38

David74

Re : Résolu - Création d'un script avec une condition

Super, merci.

Hors ligne

#6 Le 15/01/2014, à 18:11

pingouinux

Re : Résolu - Création d'un script avec une condition

Bonjour,
Pour info, la commande peut être simplifiée

if grep -q "wlan0\|eth0" /proc/net/dev; then
    echo "Connexion ok"
else
    echo "Connexion ko"
fi

ou bien

grep -q "wlan0\|eth0" /proc/net/dev && echo "Connexion ok" || echo "Connexion ko"

Hors ligne

#7 Le 15/01/2014, à 18:26

David74

Re : Résolu - Création d'un script avec une condition

OK, merci

Hors ligne

#8 Le 15/01/2014, à 22:56

David74

Re : Résolu - Création d'un script avec une condition

Voilà donc, j'ai fait ceci :

#!/bin/bash
sleep 10
if grep -q "wlan1\|eth1" /proc/net/dev; then
mail-notification
fi

Dois-je rajouter quelque chose pour lui dire de ne rien faire s'il ne trouve pas de connexion ?

Hors ligne

#9 Le 15/01/2014, à 23:05

pingouinux

Re : Résolu - Création d'un script avec une condition

Dois-je rajouter quelque chose pour lui dire de ne rien faire s'il ne trouve pas de connexion ?

S'il ne trouve rien, il ne fait rien, car on arrive à la fin du script.

Hors ligne

#10 Le 15/01/2014, à 23:12

David74

Re : Résolu - Création d'un script avec une condition

ça semble logique...
Ce qui me le semble moins, c'est que je veins de tester, et que connexion ou pas, mail-notification se lance. Oû est l'erreur ?

Hors ligne

#11 Le 16/01/2014, à 07:01

pingouinux

Re : Résolu - Création d'un script avec une condition

Le test n'est peut-être pas suffisant. Par exemple, je n'ai pour l'instant pas de connexion ethernet, mais eth0 apparaît quand même dans le fichier /proc/net/dev, suivi d'une suite de zéros.
Essaye ceci, à tout hasard :

if grep -q "\(wlan0\|eth0\):[ 0]*[1-9]\+" /proc/net/dev; then
mail-notification
fi

Hors ligne

#12 Le 16/01/2014, à 16:22

David74

Re : Résolu - Création d'un script avec une condition

Bonjour,
je viens d'essayer, et le résultat reste identique avec ou sans connexion. Du coup je suis allé voir du côté de ce fichier /proc/net/dev, pour constater qu'il ne changeait absolument en rien, connecté ou pas.

Hors ligne

#13 Le 16/01/2014, à 17:26

pingouinux

Re : Résolu - Création d'un script avec une condition

Peut-être ceci

if nm-online -qx; then
   mail-notification
fi

Hors ligne

#14 Le 16/01/2014, à 21:54

David74

Re : Résolu - Création d'un script avec une condition

A priori, oui ça c'est mieux. En testant dans un terminal avec "echo OK" ou "echo KO", ça renvoie des réponses cohérentes. Donc, je pense que c'est tout bon comme ça.
Je teste ça en situation réelle et je devrait normalement passer en Résolu.
Merci infiniment, ça faisait lonftemps que je pensais à faire un truc comme ça.

Hors ligne

#15 Le 17/01/2014, à 00:35

David74

Re : Résolu - Création d'un script avec une condition

Super. Après redémarrage sans connexion, mail-notification ne s'est pas lancé. C'est tout bon comme ça, merci beaucoup à vous.

Hors ligne