#!/bin/bash
#
# --------------------------------------------------------- #
# Skript zum Sichern wichtiger Einstellungen im System vor #
# einem Update des Systems #
# --------------------------------------------------------- #
# *** Variabelen *** --------------------------------------
HOME="/home/matthias"
# SAVEDIR="$HOME/SystemSicherung"
SAVEDIR="/mnt/Stuff/SICHERUNG/SystemSicherung200703"
EXCLUDE="$SAVEDIR/exclude.txt"
FONTDIR=/usr/local/share/fonts/
# --------------------------------------------------------- #
create_dir ()
{
if [ -d "$1" ] # Test if target directory exists.
then
echo ""
else
mkdir $1
fi
return 0 # Success.
}
# --------------------------------------------------------- #
create_file ()
{
if [ -e "$1" ] # Test if target exists.
then
rm $1
fi
touch $1
return 0 # Success.
}
# --------------------------------------------------------- #
append_DirInDir ()
{
SEARCHDIR=$1
WRITEFILE=$2
find $SEARCHDIR -maxdepth 1 -type d -not -name $SEARCHDIR -not -name . | grep $SEARCHDIR/ >> $WRITEFILE
return 0
}
# --------------------------------------------------------- #
copy_Files ()
{
FROMDIR=$1
DESTDIR=$2
create_dir $DESTDIR
if [ -d "$FROMDIR" ] # Test if target directory exists.
then
echo "> Kopieren..."
# c: copy
# p: keep permission
# x: extract
# v: verbose
tar cp --exclude-from=$EXCLUDE $FROMDIR | (cd $DESTDIR ; tar xpv)
else
echo "> Verzeichnis $FROMDIR existiert nicht"
fi
return 0 # Success.
}
# --------------------------------------------------------- #
backup_Files ()
{
FROMDIR=$1
DESTFILE=$2
if [ -d "$FROMDIR" ] # Test if target directory exists.
then
echo "> Packen..."
# c: copy
# p: keep permission
# x: extract
# v: verbose
tar cpz --exclude-from=$EXCLUDE $FROMDIR > $DESTFILE
else
echo "> Verzeichnis $FROMDIR existiert nicht"
fi
return 0 # Success.
}
# == MAIN ================================================= #
# Verzeichnis zum Speichern erstellen
create_dir $SAVEDIR
# # Sichern von ~/bin/ -------------------------------------- #
FROMDIR="$HOME/bin"
DESTDIR="$SAVEDIR/HomeBin"
DESTFILE="$SAVEDIR/HomeBin.tar.gz"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
append_DirInDir $FROMDIR $EXCLUDE
copy_Files $FROMDIR $DESTDIR
backup_Files $FROMDIR $DESTFILE
#
# # Sichern von Fonts aus /usr/local/share/fonts/ ----------- #
FROMDIR="/usr/local/share/fonts/"
DESTDIR="$SAVEDIR/Fonts"
DESTFILE="$SAVEDIR/UsrLocalShareFonts.tar.gz"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
copy_Files $FROMDIR $DESTDIR
backup_Files $FROMDIR $DESTFILE
#
# # Sichern von .texmf ------------------------------------- #
FROMDIR="$HOME/.texmf"
DESTDIR="$SAVEDIR/HomeTexmf"
DESTFILE="$SAVEDIR/HomeTexmf.tar.gz"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
copy_Files $FROMDIR $DESTDIR
backup_Files $FROMDIR $DESTFILE
#
# # Sichern von LocalTexmf ------------------------------------- #
FROMDIR="/usr/local/share/texmf/"
DESTDIR="$SAVEDIR/HomeLocalTexmf"
DESTFILE="$SAVEDIR/HomeLocalTexmf.tar.gz"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
copy_Files $FROMDIR $DESTDIR
backup_Files $FROMDIR $DESTFILE
#
# # Sichern von .cxoffice ------------------------------------- #
FROMDIR="$HOME/.cxoffice"
DESTDIR="$SAVEDIR/HomeCxoffice"
DESTFILE="$SAVEDIR/HomeCxoffice.tar.gz"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
copy_Files $FROMDIR $DESTDIR
backup_Files $FROMDIR $DESTFILE
#
# # Sichern von .kde/share/apps/kmail ------------------------------------- #
FROMDIR="$HOME/.kde/share/apps/kmail"
DESTDIR="$SAVEDIR/Mail$USER"
DESTFILE="$SAVEDIR/HomeKmail$USER.tar.gz"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
copy_Files $FROMDIR $DESTDIR
backup_Files $FROMDIR $DESTFILE
#
# # Sichern von .kde/ ohne .kde/share/apps/kmail --------------------------- #
FROMDIR="$HOME/.kde"
DESTDIR="$SAVEDIR/HomeKDE"
DESTFILE="$SAVEDIR/HomeKDE.tar.gz"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
echo "$HOME/.kde/share/apps/kmail" > $EXCLUDE
copy_Files $FROMDIR $DESTDIR
backup_Files $FROMDIR $DESTFILE
# Sichern von Versteckten Dateien in Home --------------------------------- #
FROMDIR="$HOME"
DESTDIR="$SAVEDIR/Home-$USER"
DESTFILE="$SAVEDIR/Home-$USER.tar.gz"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
echo "$HOME/.kde" >> $EXCLUDE
echo "$HOME/.texmf" >> $EXCLUDE
echo "$HOME/.cxoffice" >> $EXCLUDE
cd $HOME
ls -1 $HOME >> $EXCLUDE
copy_Files $FROMDIR $DESTDIR
backup_Files $FROMDIR $DESTFILE
#
# Sichern von /etc/ --------------------------------- #
# FROMDIR="/etc"
# DESTDIR="$SAVEDIR/etc"
# DESTFILE="$SAVEDIR/etc.tar.gz"
# echo "> Sichern von $FROMDIR"
# create_dir $DESTDIR
# create_file $EXCLUDE
# # echo "> Als Root anmelden.."
# # su
# copy_Files $FROMDIR $DESTDIR
# backup_Files $FROMDIR $DESTFILE
# #
# 8) /etc/ --> als Root
cd $HOME
exit 0
# --------------------------------------------------------- #