Script bash

Résolu
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. Bonjour,

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

    Merci.
    0
    1. 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
      1. 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. Je t'ai presque fini le script je fini de le tester et je te le copie colle
          0
        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
        3. @LtSoldierA 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
        4. @finaltouchPas de soucis :)

          Une fois tester oublie pas si sa fonctionne de passer le sujet en résolu :)
          0
      2. Merci beaucoup sa fonctionne :d .
        0