Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/06/2016, à 14:24

gab2grad

script réseau

Bonjour,
J'ai fais une image d’une VM LINUX et après avoir plaqué cette image je souhaite faire un script pour le paramétrage réseau (demande d’@IP, passerelle, masque de sous réseau, DNS1 et DNS2).
Je souhaiterais à l’issue de ce script, poser une question à l’utilisateur pour savoir si sa saisie est juste.
Si OUI, sortie du script et reboot service réseau, si NON, nouvelle saisie des infos ci-dessus.
Pouvez-vous m'aider ?
Merci

-----------------------------------------------------------
-----------------------------------------------------------

#!/bin/bash

read -p "Adresse IP: " IPADDR
read -p "Masque de réseau: " NETMASK
read -p "Passerelle: " GATEWAY
read -p "DNS #1: " DNS1
read -p "DNS #2: " DNS2

echo "IPADDR=$IPADDR" >> /etc/sysconfig/network-scripts/ifcfg-ens192
echo "NETMASK=$NETMASK" >> /etc/sysconfig/network-scripts/ifcfg-ens192
echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-ens192
echo "GATEWAY=$GATEWAY" >> /etc/sysconfig/network
echo "nameserver $DNS1" >> /etc/resolv.conf
echo "nameserver $DNS2" >> /etc/resolv.conf

read -p "CONFIRMEZ VOUS VOTRE SAISIE ? (o/n)" reponse

reponse=""
while ( [ "$reponse" != "o" ] && [ "$reponse" != "n" ] )
do

read reponse

if [ "$reponse" = "o" ]
then

exit
fi

else

if [ "$reponse" = "n" ]

read -p "Adresse IP: " IPADDR
read -p "Masque de réseau: " NETMASK
read -p "Passerelle: " GATEWAY
read -p "DNS #1: " DNS1
read -p "DNS #2: " DNS2

echo "IPADDR=$IPADDR" >> /etc/sysconfig/network-scripts/ifcfg-ens192
echo "NETMASK=$NETMASK" >> /etc/sysconfig/network-scripts/ifcfg-ens192
echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-ens192
echo "GATEWAY=$GATEWAY" >> /etc/sysconfig/network
echo "nameserver $DNS1" >> /etc/resolv.conf
echo "nameserver $DNS2" >> /etc/resolv.conf

fi

# Demande si OK
reponse=""
while ( [ "$reponse" != "O" ] && [ "$reponse" != "N" ] )

Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 02/06/2016, à 14:32)

Hors ligne

#2 Le 04/06/2016, à 14:39

Compte anonymisé

Re : script réseau

read -p "CONFIRMEZ VOUS VOTRE SAISIE ? (o/n)" reponse

reponse=""

il y a déjà un souci à ce niveau.
Tu affectes la saisie dans la variable reponse. Et ensuite, tu vide la variable.

Je suppose que tes lignes :

echo "IPADDR=$IPADDR" >> /etc/sysconfig/network-scripts/ifcfg-ens192
echo "NETMASK=$NETMASK" >> /etc/sysconfig/network-scripts/ifcfg-ens192
echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-ens192
echo "GATEWAY=$GATEWAY" >> /etc/sysconfig/network
echo "nameserver $DNS1" >> /etc/resolv.conf
echo "nameserver $DNS2" >> /etc/resolv.conf

doivent être exécuté si la réponse est "o" ou "O".

je propose ceci pour remplacer ton script :

#!/bin/bash
lecture()
{
read -p "Adresse IP: " IPADDR
read -p "Masque de réseau: " NETMASK
read -p "Passerelle: " GATEWAY
read -p "DNS #1: " DNS1
read -p "DNS #2: " DNS2
}
lecture
while [ "$reponse" != "o" ]&&[ "$reponse" != "O" ]
do
	read -p "CONFIRMEZ VOUS VOTRE SAISIE ? (o/n)" reponse
	if [ "$reponse" = "o" ]||[ "$reponse" = "O" ]
	then
		echo "IPADDR=$IPADDR" >> /etc/sysconfig/network-scripts/ifcfg-ens192
		echo "NETMASK=$NETMASK" >> /etc/sysconfig/network-scripts/ifcfg-ens192
		echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-ens192
		echo "GATEWAY=$GATEWAY" >> /etc/sysconfig/network
		echo "nameserver $DNS1" >> /etc/resolv.conf
		echo "nameserver $DNS2" >> /etc/resolv.conf
		exit 0
	elif [ "$reponse" = "n" ]||[ "$reponse" = "N" ]
	then
		lecture
	fi
done

Dernière modification par Compte anonymisé (Le 04/06/2016, à 14:42)