#! /bin/sh

loggeropt="logger -t backup -s"
$loggeropt "===================== `date +%F-%T` ====================="
$loggeropt "Backupscript fuer `hostname`.`domainname` wird gestartet"
taropts="tar -czf"

backuppfad=/mnt/backup
mounting=/mnt/backup
savepath="/etc /var/www/ /root /var/log /boot"          #Verzeichnisse die gesichert werden sollen
if [ `which hwinfo` ]; then
        $loggeropt "hwinfo wurde auf diesem Computer gefunden"
        $loggeropt "es werden die aktuellen Hardwareinformationen auch gesichert"
        hwinfoOK=0
else
        $loggeropt "hwinfo wurde auf diesem Computer NICHT gefunden"
        $loggeropt "es werden die aktuellen Hardwareinformationen NICHT gesichert"
        $loggeropt "vergewissern Sie sich dass hwinfo auf diesem Rechner installiert ist"
        hwinfoOK=1
fi

if [ `which rpm` ]; then
        $loggeropt "rpm wurde auf diesem Computer gefunden"
        $loggeropt "es werden die aktuellen Paketinformationen auch gesichert"
        packageOK=0
else
        $loggeropt "rpm wurde auf diesem Computer NICHT gefunden"
        $loggeropt "es werden die aktuellen Paketinformationen NICHT gesichert"
        $loggeropt "vergewissern Sie sich dass rpm auf diesem Rechner installiert ist"
        packageOK=1
fi

$loggeropt "mount-check wird durchgefuehrt"
/bin/mount | /bin/grep backup
backupmount=$?
if [ $backupmount -ne 0 ]; then
        $loggeropt "mount-check war NICHT erfolgreich"

        grep backup /etc/fstab
        if [ $? -ne 0 ]; then
                $loggeropt "Backup kann nicht auf Server geschrieben werden, es wird lokal erstellt!"
                backuplocal=1
        fi
else
        $loggeropt "mount-check war erfolgreich"
fi

#if [ $backupmount -eq 0 -a -d $backuppfad -o $backuplocal -eq 1 ]; then
if [ $backupmount -eq 0 -a -d $backuppfad ]; then
        $loggeropt "1....backup der Konfiguationsfiles nach $backuppfad wird durchgefuehrt"
        $taropts $backuppfad/`hostname`_backup_`date +\%F`.tar.gz $savepath
        if [ $? -ne 0 ]; then
                $loggeropt "Backupscript fuer `hostname`.m1k3.local wurde NICHT erfolgreich durchgefuehrt"
                $loggeropt "===================== `date +%F-%T` ====================="
                exit 1
        fi

        if [ $packageOK -eq 0 ]; then
                $loggeropt "1....Aktuelle Paketinformationen werden ausgelesen und nach $backuppfad gesichert"
                rpm -qa > $backuppfad/`hostname`_packagelist_backup_`date +\%F`.txt
        fi

        if [ $hwinfoOK -eq 0 ]; then
                $loggeropt "1....Aktuelle Hardwareinfo wird ausgelesen und nach $backuppfad gesichert"
                hwinfo --reallyall > $backuppfad/`hostname`_hwinfo_backup_`date +\%F`.txt
        fi

elif [ ! -d $backuppfad ]; then
        $loggeropt "Backup Ordner besteht nicht ... wird kreiert"
        mkdir -p $backuppfad && mount $mounting
        if [ $? -eq 0 -a -d $backuppfad ]; then
                $loggeropt "2....backup der Konfiguationsfiles nach $backuppfad wird durchgefuehrt"
                $taropts $backuppfad/`hostname`_backup_`date +\%F`.tar.gz $savepath
                if [ $? -ne 0 ]; then
                        $loggeropt "Backupscript fuer `hostname`.m1k3.local wurde NICHT erfolgreich durchgefuehrt"
                        $loggeropt "===================== `date +%F-%T` ====================="
                        exit 1
                fi

                if [ $packageOK -eq 0 ]; then
                        $loggeropt "1....Aktuelle Paketinformationen werden ausgelesen und nach $backuppfad gesichert"
                        rpm -qa > $backuppfad/`hostname`_packagelist_backup_`date +\%F`.txt
                fi

                if [ $hwinfoOK -eq 0 ]; then
                        $loggeropt "1....Aktuelle Hardwareinfo wird ausgelesen und nach $backuppfad gesichert"
                        hwinfo --reallyall > $backuppfad/`hostname`_hwinfo_backup_`date +\%F`.txt
                fi
        else
                $loggeropt "Backupscript fuer `hostname`.m1k3.local wurde NICHT erfolgreich durchgefuehrt"
                $loggeropt "===================== `date +%F-%T` ====================="
                exit 1
        fi

elif [ $backupmount -ne 0 ]; then
        $loggeropt "Backup Ordner ist nicht gemountet ... es wird versucht den Ordner zu mounten"
        mount $mounting
        if [ $? -eq 0 -a -d $backuppfad ]; then
                $loggeropt "3....backup der Konfiguationsfiles nach $backuppfad wird durchgefuehrt"
                $taropts $backuppfad/`hostname`_backup_`date +\%F`.tar.gz $savepath
                if [ $? -ne 0 ]; then
                        $loggeropt "Backupscript fuer `hostname`.m1k3.local wurde NICHT erfolgreich durchgefuehrt"
                        $loggeropt "===================== `date +%F-%T` ====================="
                        exit 1
                fi

                if [ $packageOK -eq 0 ]; then
                        $loggeropt "1....Aktuelle Paketinformationen werden ausgelesen und nach $backuppfad gesichert"
                        rpm -qa > $backuppfad/`hostname`_packagelist_backup_`date +\%F`.txt
                fi

                if [ $hwinfoOK -eq 0 ]; then
                        $loggeropt "1....Aktuelle Hardwareinfo wird ausgelesen und nach $backuppfad gesichert"
                        hwinfo --reallyall > $backuppfad/`hostname`_hwinfo_backup_`date +\%F`.txt
                fi
        else
                $loggeropt "Backupscript fuer `hostname`.m1k3.local wurde NICHT erfolgreich durchgefuehrt"
                $loggeropt "===================== `date +%F-%T` ====================="
                exit 1
        fi

else
        $loggeropt "Backupscript fuer `hostname`.m1k3.local wurde NICHT erfolgreich durchgefuehrt"
        $loggeropt "===================== `date +%F-%T` ====================="
        exit 1
fi

$loggeropt "Backupscript fuer `hostname`.`domainname` wurde erfolgreich durchgefuehrt"
$loggeropt "Backup wurde unter $backuppfad erstellt"
$loggeropt "===================== `date +%F-%T` ====================="
exit 0

 
backup-script.txt · Last modified: 2009/09/13 17:39 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki