Script bash

Résolu
finaltouch Messages postés 11 Statut Membre -  
finaltouch Messages postés 11 Statut Membre -
Bonjour,

Je suis débutant sous linux et encore plus pour créer des scripts. Je cherche à modifier le fichier /etc/network/interface afin de choisir gràce à l'éxécution de mon script l'IP suivant le sous réseau que je souhaite.

Je souhaiterai changer:

address 192.168.0.123 par ---> address 192.168.1.123
gateway 192.168.0.1 par ---> gateway 192.168.1.1

Je pense devoir utiliser la commande head ou même peut-être cut pour générer mon script ...Cependant je ne vois pas vraiment comment le réaliser .
Ci-dessous mon début de script .

#!/bin/bash

if [ $1 = "peda" ]; then
{ echo "interface vlan péda activée";}

else [ $1 = "admin" ];
{ echo "interface vlan admin activée";}

fi

cat /etc/network/interface0 > tmp

if [ $var1 = "address"] then

fi

Merci d'avance

Final_touch
Configuration: Linux Debian

4 réponses

  1. LtSoldier Messages postés 23 Statut Membre 2
     
    Bonjour,

    Peut tu s'il te plait me copier coller le contenu de ton fichier network.

    Merci.
    0
  2. finaltouch Messages postés 11 Statut Membre
     
    Voici mon fichier /etc/network/interface :

    auto eth0
    iface eth0 inet manual

    auto tap1
    iface tap1 inet manual
    tunctl_user <XXXX>

    auto bridge0
    iface bridge0 inet static
    post-up chmod ugo+rw /dev/net/tun
    address 192.168.0.123
    netmask 255.255.255.0
    gateway 192.168.0.1
    bridge-ports eth0 tap1
    bridge-ageing 7200
    bridge-fd 0

    iface lo inet loopback

    J'ai vu que l'on pouvait utiliser la commande sed ... Mais après c'est prail comment ??

    Merci de t'interesser à mon pb !!
    0
  3. finaltouch Messages postés 11 Statut Membre
     
    J'ai avancé dans mon problème . il change bien mon adresse IP . Je met tout cela dans un fichier tmp . Comment l'appliquer ensuite à mon fichier /etc/network/interface ??

    #!/bin/bash

    cat /etc/network/interface0 > tmp

    if [ $1 = "pedagogie" ]; then
    { echo "interface vlan pédagogie en cours d'activation";}
    sed 's/192.168.1.1/192.168.0.1/g' <tmp

    else [ $1 = "administratif" ];
    { echo "interface vlan administratif en cours d'activation";}

    sed 's/192.168.0.1/192.168.1.1/g' <tmp

    fi
    0
    1. LtSoldier Messages postés 23 Statut Membre 2
       
      Je t'ai presque fini le script je fini de le tester et je te le copie colle
      0
    2. LtSoldier Messages postés 23 Statut Membre 2
       
      #!/bin/bash
      #
      # Définition des @IP
      IP1="192.168.0.123"
      IP2="192.168.1.123"
      
      # Définition des passerelles
      GATEWAY1="192.168.0.1"
      GATEWAY2="192.168.1.1"
      
      # Définition du fichiers Network
      NETWORK_FILE="/etc/network/interface"
      
      # Fichier exec shell script temp
      SED_FIC="/tmp/sed_tmp"
      
      # Début du script
      
      if [ $1 = "peda" ]; then {
      	
      	echo "interface vlan péda activée"
      
      	# Changement de l'adresse IP
      
      	IP_TO_CHANGE=`grep address $NETWORK_FILE | awk '{print $2}'`
      	sed -i 's/$IP_TO_CHANGE/$IP1/' $NETWORK_FILE > $SED_FIC
      	chmod 755 $SED_FIC	
      	$SED_FIC
      	rm $SED_FIC
      
      	# Changement de la passerelle
      
      	GATEWAY_TO_CHANGE=`grep gateway $NETWORK_FILE | awk '{print $2}'`
      	echo "sed -i 's/$GATEWAY_TO_CHANGE/$GATEWAY1/' $NETWORK_FILE" > $SED_FIC
      	chmod 755 $SED_FIC	
      	$SED_FIC
      	rm $SED_FIC
      }
      
      
      else [ $1 = "admin" ]; {
      
      	echo "interface vlan admin activée"
      
      	# Changement de l'adresse IP
      
      	IP_TO_CHANGE=`grep address $NETWORK_FILE | awk '{print $2}'`
      	echo $IP_TO_CHANGE
      	echo "sed -i 's/$IP_TO_CHANGE/$IP2/' $NETWORK_FILE" > $SED_FIC
      	chmod 755 $SED_FIC	
      	$SED_FIC
      	rm $SED_FIC
      
      	# Changement de la passerelle
      
      	GATEWAY_TO_CHANGE=`grep gateway $NETWORK_FILE | awk '{print $2}'`
      	echo $GATEWAY_TO_CHANGE
      	echo "sed -i 's/$GATEWAY_TO_CHANGE/$GATEWAY2/' $NETWORK_FILE" > $SED_FIC
      	chmod 755 $SED_FIC
      	$SED_FIC
      	rm $SED_FIC
      
      }
      
      fi
      
      0
      1. finaltouch Messages postés 11 Statut Membre > LtSoldier Messages postés 23 Statut Membre
         
        A ok ....

        C'est vraiment sympa d'avoir prit un peu de temps pour m'aider et je t'en remercie. J'ai pas encore testé mais si tu la fais ca devrais le faire merci encore ;)

        final_touch
        0
      2. LtSoldier Messages postés 23 Statut Membre 2 > finaltouch Messages postés 11 Statut Membre
         
        Pas de soucis :)

        Une fois tester oublie pas si sa fonctionne de passer le sujet en résolu :)
        0
  4. finaltouch Messages postés 11 Statut Membre
     
    Merci beaucoup sa fonctionne :d .
    0