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

      Une fois tester oublie pas si sa fonctionne de passer le sujet en résolu :)
  2. 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 !!
    1. Bonjour,

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

      Merci.