Script bash

Résolu/Fermé
finaltouch Messages postés 11 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 29 mai 2008 - 29 avril 2008 à 14:25
finaltouch Messages postés 11 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 29 mai 2008 - 29 avril 2008 à 15:43
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
A voir également:

4 réponses

LtSoldier Messages postés 23 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 25 juillet 2008 2
29 avril 2008 à 14:40
Bonjour,

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

Merci.
0
finaltouch Messages postés 11 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 29 mai 2008
29 avril 2008 à 14:46
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
finaltouch Messages postés 11 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 29 mai 2008
29 avril 2008 à 15:13
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
LtSoldier Messages postés 23 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 25 juillet 2008 2
29 avril 2008 à 15:16
Je t'ai presque fini le script je fini de le tester et je te le copie colle
0
LtSoldier Messages postés 23 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 25 juillet 2008 2
29 avril 2008 à 15:22
#!/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
finaltouch Messages postés 11 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 29 mai 2008 > LtSoldier Messages postés 23 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 25 juillet 2008
29 avril 2008 à 15:27
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
LtSoldier Messages postés 23 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 25 juillet 2008 2 > finaltouch Messages postés 11 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 29 mai 2008
29 avril 2008 à 15:33
Pas de soucis :)

Une fois tester oublie pas si sa fonctionne de passer le sujet en résolu :)
0
finaltouch Messages postés 11 Date d'inscription jeudi 24 avril 2008 Statut Membre Dernière intervention 29 mai 2008
29 avril 2008 à 15:43
Merci beaucoup sa fonctionne :d .
0