Konfiguration ändern

R

returnNULL

Mitglied
Hey,

ich hab mir um Server schneller zu konfigurieren ein Skript geschrieben.

Ein kleiner Auszug:

Code:
function advancedipkonfig
{
	cat /etc/network/interfaces
	read -p "Geben Sie die Netzwerkmaske ein: " netmask
	cp /etc/network/interfaces /etc/network/interfaces.bak
	advstr="/netmask/ c netmask $netmask"
	sed "$advstr" /etc/network/interfaces.bak > /etc/network/interfaces
	rm /etc/network/interfaces.bak

	read -p "Geben Sie den Gateway ein: " gateway
	cp /etc/network/interfaces /etc/network/interfaces.bak
	advstr2="/gateway/ c gateway $gateway"
	sed "$advstr2" /etc/network/interfaces.bak > /etc/network/interfaces
	rm /etc/network/interfaces.bak

        read -p "Geben Sie das network ein: " network
        cp /etc/network/interfaces /etc/network/interfaces.bak
        advstr3="/network/ c network $network"
        sed "$advstr3" /etc/network/interfaces.bak > /etc/network/interfaces
        rm /etc/network/interfaces.bak

        read -p "Geben Sie das broadcast ein: " broadcast
        cp /etc/network/interfaces /etc/network/interfaces.bak
        advstr4="/broadcast/ c broadcast $broadcast"
        sed "$advstr4" /etc/network/interfaces.bak > /etc/network/interfaces
        rm /etc/network/interfaces.bak

	read -p "Geben Sie den DNS-Nameserver ein: " dnsname
	cp /etc/network/interfaces /etc/network/interfaces.bak 
	advstr5="/dns-nameservers/ c dns-nameservers $dnsname"
	sed "$advstr5" /etc/network/interfaces.bak > /etc/network/interaces
	rm /etc/network/interfaces.bak

	read -p "Geben Sie den DNS-Serach Domain ein: " dnssearch
	cp /etc/network/interfaces /etc/network/interfaces.bak
	advstr6="/dns-search/ c dns-search $dnssearch"
	sed "$advstr6" /etc/network/interfaces.bak > /etc/network/interfaces
	rm /etc/network/interfaces.bak
}

Das ist leider nicht sehr schön und das Skript wächst immer weiter. Kennt jemand vlt eine elegantere Lösung? evtl. auch mit einer anderen Sprache.

Vielen Dank

NULL
 
Vorschlag für die Bash:
Code:
function advancedipkonfig
{
	cat /etc/network/interfaces
	for r in \
	Netzwerkmaske:netmask \
	Gateway:gateway \
	Network:network \
	Broadcast:broadcast \
	DNS-Nameserver:dnsname \
	DNS-Serach-Domain:dnssearch
	do
		read -ep "Bitte ${r%:*} eingeben: " reply
		sed -i "/${r#*:}/ c ${r#*:} $reply" /etc/network/interfaces
	done
}
Die Liste zwischen "for" und "do" kannst Du einfach erweitern. Beachte, dass ein Listeneintrag keine Leerzeichen enthalten darf und der letzte Eintrag nicht mit einem Backslash endet.
 
Zuletzt bearbeitet:
Perfekt. Vielen lieben Dank. Das ändert jetzt viele Skripte :-*
 
Warum nicht DHCP, sondern mit der Hand eingeben?
 
Das ist im dem Fall ein Skript für Debian VMware Templates, die geklont werden. Ich bin der Meinung das statische IP's für Server besser sind. Ich hab lieber selber Kontrolle darüber welcher Server welche IP bekommt. Das war nur ein Ausschnitt das ganze System wird damit konfiguriert. (Hostname, Webserver, exim, ftp etc.).
 

Ähnliche Themen

Zugriff auf Samba Fileserver Freigaben verweigert(Samba 4 Active Directory Domäne)

Adressvergabe in anderen Subnets

Debian 7.6 kein lokales Netz

Samba 4.1.11 Domänen anbindung funktioniert nicht !!!

Debian Gateway

Zurück
Oben