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 31/05/2005, à 09:26

Guillaume23

Script

Comment dans un script tester si le réseau est actif, soit par ping soit par une variable dans un fichier système.

Merci. Guillaume.

#2 Le 31/05/2005, à 09:52

Express

Re : Script

Ce n'est pas "nmap" qui te fait cela ??

Hors ligne

#3 Le 31/05/2005, à 10:05

racoon97

Re : Script

Je dirais plutot de netstat wink Reste à trouver le bon parametre en fonction de ce que tu souhaite faire.


Pas de logiciel de montage vidéo professionnel sous Linux ? Demandez à Sony son portage de Vegas Pro sous Linux... ou attendez Lightworks ;)

Hors ligne

#4 Le 31/05/2005, à 10:31

sksbir

Re : Script

regarde ici ce que j'avais fait à l'époque où mon sagem 908/free merdoyait complètement.
le script était conçu pour tourner sous freesco, pas sous ubuntu, mais si ça peut t'inspirer wink

Hors ligne

#5 Le 31/05/2005, à 12:05

Guillaume23

Re : Script

Merci tout d'abord pour vos réponses.

Je vais reformuler ma question, est-il possible sous Ubuntu (Debian), de voir si le réseau est UP ou DOWN,(Dans un fichier de config, dans l'interface graphique, ....)

Merci de votre aide

#6 Le 31/05/2005, à 12:54

sksbir

Re : Script

je crois qu'il faudrait que tu recommences une 2eme fois ta formulation::rolleyes:

Soyons pragmatique : En vérité, c'est pas le probleme que le réseau soit up ou down. par contre, il y a quelque chose que tu aimerais faire et qui ne fonctionne pas ou fonctionne mal, et tu penses que ça viendrait de ce que le réseau est up ou down.
Ou alors au contraire, tu voudrais gérer ton réseau comme on peut le faire sous windows, c'est à dire en désactivant la connexion réseau quand on ne veut plus faire de réseau, et tu cherches comment faire pareil sous ubuntu...

Mais bon, tu poses une question technique, alors voici une réponse technique : la commande ifconfig te dira si ton interface est up ou pas.(up= marqué "up", down = c'est pas marqué "up")

maintenant, je parie que c'est pas la réponse que tu attendais en réalité... wink

Dernière modification par sksbir (Le 31/05/2005, à 12:56)

Hors ligne

#7 Le 31/05/2005, à 15:57

Guillaume23

Re : Script

En effet,

Bon je me concentre  lol

J'ai installé un serveur ftp sur une machine Ubuntu, j'ai récupéré un script de lancement et dans ce script il teste si le réseau et UP ou DOWN.

Pour cela il se base sur ce bout de script :

# Get network configuration
. /etc/sysconfig/network
# Check that networking is up
[ $NETWORKING = "no" ] && exit 0

Le souci sur Ubuntu  ce fichier n'existe et je ne sais pas comment savoir si le réseau est DOWN ou UP.

Avec la commande ifconfig même si le cable est débranché dans le détail de l'interface c'est toujours UP.

Donc si vous avez une solution,

Merci. Guillaume

#8 Le 31/05/2005, à 16:04

coffee

Re : Script

un ping?


Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)

Hors ligne

#9 Le 31/05/2005, à 18:17

sksbir

Re : Script

Ta démarche reste curieuse, car même si l'interface n'est pas opérationnelle au moment où tu démarres ton serveur FTP, elle pourra le (re)devenir plus tard.
D'habitude, on démarre un serveur FTP avec l'idée de se dire "bof, je le démarre, et si il tourne pour rien, tant pis, mais au moins, quand l'interface est active, le service FTP est offert"...

Ceci dit, la rupture de réseau au sens "signal sur le cable" est détecté comme un évenement kernel.
Tu trouveras donc les évenements de ce type consignés dans /var/log/kern.log

Après, tout dépend comment tu as configuré /etc/syslog.conf.

Voici un bout de script (non testé hein wink ) qui te permettra de savoir dans quel état est ton interface :(je suppose que c'est eth0 )

grep 'eth0: network connection' /var/log/kern.log|tail -1|grep up
if [ $? -eq 0 ]
then
echo la connexion est actuellement UP
else
echo la connexion est actuellement DOWN
fi

Hors ligne

#10 Le 01/06/2005, à 12:37

Guillaume23

Re : Script

Merci pour vos réponses,

Maintenant, est-il possible de rediriger les logs pour les interfaces réseaux dans un fichier particulier avec syslog.

Car dans le fichier /var/log/kernel.log il y a beaucoup de log qui ne concerne pas les interface et je ne vois pas bien même avec un script comment extraire les informations qui m'interresse.

Je vous remercie grandement pour votre aide.

Guillaume.

#11 Le 01/06/2005, à 12:54

coffee

Re : Script

cat  /var/log/kernel.log | grep ftp


Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)

Hors ligne

#12 Le 01/06/2005, à 13:32

sksbir

Re : Script

n'écoute pas coffee, il raconte n'importe quoi... cool ("grep ftp" ? )

il suffit de reprendre juste le début de mon script:

grep 'eth0: network connection' /var/log/kern.log

et tu n'auras que les "up" et les "down"...

Hors ligne

#13 Le 01/06/2005, à 15:36

coffee

Re : Script

erf j'avais lu trop vite et j'ai pas reflechi...

for var in `cat /proc/net/dev | sed '1,2d' | awk  'BEGIN { FS="\:" }  {print $1}'`; do grep "${var}: network connection" /var/log/kern.log; done

Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)

Hors ligne

#14 Le 03/06/2005, à 10:41

Guillaume23

Re : Script

Bonjour,

je progresse dans mon script et cela grâce à votre aide, une fois qu'il sera opérationnel, je le publierai sur le forum, mais j'ai encore besoin de vous :

Je voudrais dans un script récupérer le résultat de cette commande :
grep 'eth0: network connection' /var/log/kern.log|tail -1|grep up

J'ai bien essayé avec ceci mais ça ne marche pas :
a=grep 'eth0: network connection' /var/log/kern.log|tail -1|grep up

l'erreur est la suivante :
./connect: line 1: eth0: network connection: command not found

Merci pour votre aide.

Guillaume

#15 Le 03/06/2005, à 11:29

sksbir

Re : Script

ben qu'est ce qui va pas avec le script que je t'ai proposé au début ?
Tu peux mettre ce que tu veux dans le test if /then /fi : j'ai mis des echo pour montrer...
Sinon, tu fais ça:

grep 'eth0: network connection' /var/log/kern.log|tail -1|grep up
a=$?

et dans a, tu auras 0 si il trouve le dernier up , et -1 si il trouve pas le dernier up...


Sinon, ta commande n'est pas bonne : pour avoir le résultat d'une commande unix dans une variable, c'est


a=`ta commande unix`

Dernière modification par sksbir (Le 03/06/2005, à 11:31)

Hors ligne

#16 Le 03/06/2005, à 12:03

Guillaume23

Re : Script

Merci,

dans ton script, si je fais un echo $? j'ai en permanence la valeur 1 cable branché ou débranché.

Guillaume.

#17 Le 03/06/2005, à 12:23

sksbir

Re : Script

$? ,c'est le code retour de la derniere execution. Donc si tu utilise $? ailleurs que tout de suite apres le dernier grep, c'est pas le code retour du grep, mais d'une autre commande que tu as.

je regarderai ça chez moi (là, je suis au boulot, sous windows... roll )

Hors ligne

#18 Le 03/06/2005, à 14:28

Guillaume23

Re : Script

J'avais une erreur de désignation dans le grep.

Par contre, serait-il possible de ne pas afficher le résulat de la commande à l'écran.

Merci. Guillaume.

#19 Le 03/06/2005, à 14:36

sksbir

Re : Script

ha oui, effectivement, j'aurais pu y penser : toujours 1 en retcode= la chaine n'est jamais trouvée...

grep 'eth0: network connection' /var/log/kern.log|tail -1|grep up >/dev/null 2>&1

Dernière modification par sksbir (Le 03/06/2005, à 14:38)

Hors ligne

#20 Le 03/06/2005, à 14:59

Guillaume23

Re : Script

big_smile Merci beaucoup, mon script fonctionne enfin, encore une dernière question et je publie mon script, qu'elle est la signification de 2>&1.

Merci

#21 Le 03/06/2005, à 15:13

sksbir

Re : Script

ça veut dire qu'on envoie les messages d'erreurs du script vers le même endroit que là où en envoie la sortie standard.

Et comme juste avant, on envoie la sortie standard vers la moquette ( /dev/null = device "ne rien en faire" ), toute sortie de message effectuée par le script qu'elle soit erreur ou standard passe à la trappe...

lien google si tu veux creuser le sujet

Hors ligne

#22 Le 03/06/2005, à 15:38

Guillaume23

Re : Script

lol Voila  mon script qui teste si le réseau est up ou down, un merci particulier à sksbir qui m'a bien aidé.

Je suis pas peu fière cool de vous présenter mon premier script Unix

clear
grep 'eth0: Link is' /var/log/kern.log | tail -1 |grep up >/dev/null 2>&1
if [ $? -eq 0 ]
then
echo la connexion est actuellement UP
else
echo la connexion est actuellement DOWN
fi

Merci à vous. Guillaume. Bon week-end à tous.