Pages : 1
#1 Le 02/06/2016, à 13: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, à 13:32)
Hors ligne
#2 Le 04/06/2016, à 13: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, à 13:42)
Pages : 1