#!/bin/ksh ### ### Script zum Platten-Clonen ### #### clear echo " *********************************************" echo " *** DIESES SCRIPT CLONT IHRE FESTPLATTE ***" echo " *** ***" echo " *** VORAUSSETZUNGEN: ***" echo " *** - 2 Festplatten der gleichen Größe ***" echo " *** - 2.Festplatte wird repartitioniert ***" echo " *** ***" echo " *** ***" echo " *********************************************" echo "Beliebige Taste zum Weitermachen zum Unterbrechen" read clear HINV1=`hinv |grep "Disk drive" |grep "unit 1 on SCSI controller 0"` HINV2=`hinv |grep "Disk drive" |grep "unit 2 on SCSI controller 0"` HINV3=`hinv |grep "Disk drive" |grep "unit 3 on SCSI controller 0"` if [ "$HINV1" != "" ]; then DISK1="/dev/dsk/dks0d1s0 --> DISK1" fi if [ "$HINV2" != "" ]; then DISK2="/dev/dsk/dks0d2sX --> DISK2" fi if [ "$HINV3" != "" ]; then DISK3="/dev/dsk/dks0d3sX --> DISK3" fi if [ "$HINV1" == "" ]; then echo " Sie booten anscheinend nicht von /dev/dsk/dks0d1s0 damit kann das Programm nicht umgehen " exit fi echo " ** --> Folgende Disks sind verfügbar :" echo $DISK1 echo $DISK2 echo $DISK3 echo " \n\n *** --> Das Programm clont DISK1 auf eine weitere verfügbare Platte *** " echo " *** --> Welche Platte soll Ihre Zielplatte sein? *** " if [ "$HINV2" != "" ]; then echo " \n\n *** Für DISK2 geben Sie bitte 2 ein ***" fi if [ "$HINV3" != "" ]; then echo " \n\n *** Für DISK3 geben Sie bitte 3 ein ***" fi if [ "$HINV2" == "" ] && [ "$HINV3" == "" ]; then echo " \n\n ** Keine Zielplatte vorhanden **" exit fi read N export ${N} case "$N" in 2|3) if [ "$N" == "2" ] && [ "$HINV2" == "" ]; then echo "*** DISK${N} ist nicht vorhanden ---> Clonen nicht möglich ***" echo " *** PROGRAMM-ABBRUCH --> Bitte neu starten ***" exit fi if [ "$N" == "3" ] && [ "$HINV3" == "" ]; then echo "*** DISK${N} ist nicht vorhanden ---> Clonen nicht möglich ***" echo " *** PROGRAMM-ABBRUCH --> Bitte neu starten ***" exit fi echo " ###### ---> Beginne Clonen ########\n" echo " \n ** Test: \t\t\t ist Verzeichnis disk${N} vorhanden ?" if [ -d /disk${N} ]; then echo " ** Test erfolgreich: \t\t Verzeichnis existiert " else echo " ** Test fehlgeschlagen: \t Verzeichnis existiert nicht " echo " \n\t****** disk${N} wird erstellt ***** " cd / mkdir disk${N} fi echo " \n ** --> Mounts werden gelöst ** " umount -a 2> /dev/null echo " \n ** --> FX wird ausgeführt ** " ##### VORSICHT FX ist INTERAKTIV und wird über HIER-DOCUMENT gesteuert #### bis ZEILE FX-END liest fx die Kommandos aus diesem File #### Leerzeilen können auch ENTER sein!!!! fx -x < /dev/null ${N} r ro y re 1024 y /exi FX-END echo " \n ** --> XFS-DATEISYSTEM wird erstellt **" mkfs_xfs -b size=4096 /dev/rdsk/dks0d${N}s0 1> /dev/null echo " \n ** --> /dks0d${N}s0 wird auf /disk${N} gemountet" mount /dev/dsk/dks0d${N}s0 /disk${N} echo " \n ** --> Volume-Header wird übertragen ** " echo " ** STEP 1: sash übertragen **" dvhtool -v get sash /tmp/sash dvhtool -v creat /tmp/sash sash /dev/rdsk/dks0d${N}vh echo " ** STEP 2: ide übertragen **" dvhtool -v get ide /tmp/ide dvhtool -v creat /tmp/ide ide /dev/rdsk/dks0d${N}vh echo " ** STEP 3: symmon übertragen **" dvhtool -v get symmon /tmp/symmon dvhtool -v creat /tmp/symmon symmon /dev/rdsk/dks0d${N}vh echo " ** STEP 4: IP30prom übertragen **" dvhtool -v get IP30prom /tmp/IP30prom dvhtool -v creat /tmp/IP30prom IP30prom /dev/rdsk/dks0d${N}vh echo " \n ** --> Dateien und Verzeichnisse werden übertragen - Bitte Geduld! ** " xfsdump -J - /dev/rdsk/dks0d1s0 | xfsrestore -J - /disk${N} echo " \n ** --> /disk${N} wird bereinigt ** " cd /disk${N} rm -rf orphanage cd / umount /disk${N} mount -a echo " \n ** --> Verzeichnis /disk${N} wird gelöscht!" cd / rm -rf /disk${N} echo " \n ***************************************************" echo " \n \t\t CLONE-VORGANG abgeschlossen" echo " \n \t\t BITTE UMZUGS-SCRIPT ausführen !!" echo " \n ***************************************************" ;; *) echo "Falsche Eingabe --> Starten Sie das Programm erneut"; exit ;; esac