Script bash configuration du réseau serveur

Fermé
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - Modifié par xunil2003 le 6/08/2012 à 18:19
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 6 août 2012 à 21:35
Bonjour,

Pour mon serveur j'ai fait ce script bash
#!/bin/sh     

#Recupere l'IP interne    
INT=eth1 # ou eth0     
IPINT='ifconfig $INT | grep "inet adr" | cut -d: -f2 | cut -d' ' -f1'     
IPINT2='ifconfig $INT | grep "inet adr"  | cut -d: -f4 '     
ADRESSE=$(netstat -ie | sed -n 's/^.*inet adr:\([0-9]*.\)\.\([0-9]*.\)\.\([0-9]*.\)\.\([0-9]*.\).*$/     
\1.\2.\3.\4/p')     

#Recupere l'IP externe     
export ip=$(GET www.monip.org)     
export IPEXT=$(echo $ip | (read IP; echo $IP |perl -ne '/(IP\s*:\s*(?:\d{1,3}\.){3}\d{1,3})/;print $1'))     

echo Ce script doit être executé en root.     
echo      
echo IP internet sur $INT : $IPINT     
echo IP externet : $IPEXT     
echo Sous Masque reseau : $IPINT2     
echo IP serveur apache :  $ADRESSE


Ici je ne suis pas arrivé a récupérer uniquement l'ip 127.0.0.1 avec
ADRESSE=$(netstat -ie | sed -n 's/^.*inet adr:\([0-9]*.\)\.\([0-9]*.\)\.\([0-9]*.\)\.\([0-9]*.\).*$/     
\1.\2.\3.\4/p')


J'ai besoin d'afficher également la passerelle , le serveur DNS1 et le serveur DNS2.
Comment puis je faire ?

Merci.

5 réponses

gnugo Messages postés 145 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 8 décembre 2014 46
6 août 2012 à 18:13
Passerelle par défaut : dernière ligne d'un ip route show
dns : dans le fichier /etc/resolv.conf
1
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
Modifié par xunil2003 le 6/08/2012 à 19:11
Bonjour

Pour récupérer l'adresse dns dans le fichier j'ai fait ceci :
for ligne in $(cat /etc/resolv.conf); do 
  SERVEUR_DNS_1='echo ${ligne} | cut -d " " -f 2' 
  SERVEUR_DNS_2='echo ${ligne} | cut -d " " -f 4' 
done  
echo $SERVEUR_DNS_1 
echo $SERVEUR_DNS_2


et il m'affiche :
212.27.54.252 
212.27.54.252


au lieu de :
212.27.53.252 
212.27.54.252


Fichier /etc/resolv.conf
[root@localhost bash]# cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) 
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN 
nameserver 212.27.53.252 
nameserver 212.27.54.252 
[root@localhost bash]# 


Je n'arrive pas a récupérer la 1er Adresse DNS la 1 de la première ligne, Pourquoi ?

Merci.
1
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
6 août 2012 à 19:16
Salut,

 egrep -o  '([0-9]{1,3}\.){3}[0-9]{1,3}' resolv.conf 
0
gnugo Messages postés 145 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 8 décembre 2014 46
6 août 2012 à 19:33
Comme ton script est fait, il ne retient que la dernière ligne puisque tu réaffectes les 2 variables à chaque ligne lue. Et donc au moment du echo, les 2 variables portent sur la dernière ligne, donc .....54.252
La solution de zipe parait meilleure en effet:)
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
6 août 2012 à 19:28
Bonjour,

Oui c'est pas bête mais je ne peut pas indiquer les DNS comme ceci :
Serveur DNS 1 : 212.27.53.252
Serveur DNS 2 : 212.27.54.252

au lieu de :
212.27.53.252
212.27.54.252


Merci.
1
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
6 août 2012 à 20:26
$ egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' resolv.conf | nl -n ln | sed 's/\s\+/ : /;s/^/Serveur DNS /'
Serveur DNS 1 : 212.27.53.252
Serveur DNS 2 : 212.27.54.252

$
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
6 août 2012 à 20:18
Bonjour;

Ben justement je n'arrive pas a trouver ce qui ne vas pas dans mon script ?

Merci.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
6 août 2012 à 21:35
Bonsoir,


Pour la passerelle avec ceci :
PASSERELLE='ip route show | grep "via" | cut -d: -f4 '
echo Passerelle par default : $PASSERELLE


Il s'affiche
default via 192.168.0.254 dev eth1 metric 10 192.168.0.0/24 via 192.168.0.2 dev eth1 scope link


Comment afficher uniquement la passerelle comme ceci :
Passerelle par default :  192.168.0.254


Merci.
1