Download script : change_host.tar.gz
#!/bin/bash # # ---------------------------------------------------------------------- # Autor : Detlef Hahn # ---------------------------------------------------------------------- # Version Datum Name Änderung # 1.0 08.08.2006 Detlef Hahn Erste Version # ---------------------------------------------------------------------- # Escapesequenzen bold=$(tput bold) norm=$(tput sgr0) red="\033[31;40m" green="\033[32;40m" tmp="/tmp/$1" # ---------------------------------------------------------------------- # Funktionen # ---------------------------------------------------------------------- function show() { echo -e " ${bold} $1 ${norm}" } function ok() { if [ $1 -eq 0 ] ; then echo -e " ${bold} ${green}[ DONE ]${norm}" else echo -e " ${bold} ${red}[ ERROR ]${norm}" fi echo " " } # -------------------------------------------------------------------- if [ "$#" -lt 2 ] ; then show "usage: $0 stations-id-alt stations-id-neu" echo "Beispiel : $0 lugXX-rtg lugdh2-rtg" echo "oder" echo "Beispiel : $0 lugXX lugdh2" echo "" cat << EOF Folgende Dateien werden modifiziert: - /etc/hostname - /etc/hosts - /etc/network/interfaces - /etc/resolv.conf - /boot/grub/menu.lst - /root/neuer_kernel Die Originaldateien werden unter /tmp/lug* abgelegt. Sie sind dort bis zum nächsten boot vorhanden Folgende Dateinamen werden angepasst: - /boot/vmlinuz* - /boot/Systemmap* - /boot/config* EOF exit fi mkdir $tmp show "Änderung von /etc/hostname" cp /etc/hostname ${tmp}/hostname sed -e "/$1/s/$1/$2/" ${tmp}/hostname > /etc/hostname grep "$2" /etc/hostname ok "$?" show "Änderung von /etc/hosts" cp /etc/hosts ${tmp}/hosts sed -e "/$1/s/$1/$2/" ${tmp}/hosts > /etc/hosts grep "$2" /etc/hosts ok "$?" show "Änderung von /etc/network/interfaces" grep "address" /etc/network/interfaces show "Austausch Netzanteil innerhalb der IP " echo -n "alter String : " read alt echo -n "neue Netzadresse : " read neu if [ $? -eq 0 -a ${#alt} -gt 0 -a ${#neu} -gt 0 ] ; then cp /etc/network/interfaces ${tmp}/interfaces sed -e "/$alt/s/$alt/$neu/" ${tmp}/interfaces > /etc/network/interfaces else echo " " show "keine Änderung in /etc/network/interfaces durchgeführt" fi grep "$neu" /etc/network/interfaces ok "$?" show "Änderung von /etc/resolv.conf" cp /etc/resolv.conf ${tmp}/resolv.conf sralt=${2%%-*} nsalt=`egrep "^[^#] *network" /etc/network/interfaces | sed -e "s/network//" -e "s/ //g" -e "s/\.0$//"`".253" echo "Bitte eingeben " echo -n "search [ ${sralt} ] :" read srneu echo -n "nameserver [ ${nsalt} ] : " read nsneu if [ ${#srneu} -gt 0 ] ; then echo "search ${srneu} " > /etc/resolv.conf else echo "search ${sralt} " > /etc/resolv.conf fi if [ ${#nsneu} -gt 0 ] ; then echo "nameserver ${nsneu} " > /etc/resolv.conf else echo "nameserver ${nsalt} " >> /etc/resolv.conf fi show "Neue /etc/resolv.conf" cat /etc/resolv.conf ok "$?" show "Änderung von /boot/grub/menu.lst" cp /boot/grub/menu.lst ${tmp}/menu.lst sed -e "/$1/s/$1/$2/" ${tmp}/menu.lst > /boot/grub/menu.lst grep "$2" /boot/grub/menu.lst ok "$?" show "Änderung Dateinamen in /boot" files=`ls /boot | grep $1` for f in $files do nf=`echo $f | sed -e "/$1/s/$1/$2/"` echo "mv /boot/$f /boot/$nf" mv /boot/$f /boot/$nf done ls -l /boot ok "$?" show "Änderung script /root/neuer_kernel" cp /root/neuer_kernel ${tmp}/neuer_kernel sed -e "/$1/s/$1/$2/" ${tmp}/neuer_kernel > /root/neuer_kernel grep "$2" /root/neuer_kernel ok "$?" show "Originale der geänderten Dateien liegen bis zum nächsten boot in" show " $tmp" echo show "Wenn dieser Rechner das Gateway ist, damm muß noch das Firewall-script" show "in /etc/network/start_mask.sh angepasst werden" echo