#!/bin/bash
#
# --------------------------------------------------------- #
# Skript zum Sichern wichtiger Einstellungen im System vor #
# einem Update des Systems #
# --------------------------------------------------------- #
# *** Variabelen *** --------------------------------------
SAVEDIR="$HOME/SystemSicherung"
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
}
# == MAIN ================================================= #
# Verzeichnis zum Speichern erstellen
create_dir $SAVEDIR
# Sichern von ~/bin/ -------------------------------------- #
FROMDIR="$HOME/bin"
DESTDIR="$SAVEDIR/HomeBin"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
append_DirInDir $FROMDIR $EXCLUDE
# c: copy
# p: keep permission
# x: extract
# v: verbose
echo "> Kopieren..."
tar cp --exclude-from=$EXCLUDE $FROMDIR | (cd $DESTDIR ; tar xp)
echo "> Packen..."
tar cpz --exclude-from=$EXCLUDE $FROMDIR > "$SAVEDIR/HomeBin.tar.gz"
# Sichern von Fonts aus /usr/local/share/fonts/ ----------- #
FROMDIR="/usr/local/share/fonts/"
DESTDIR="$SAVEDIR/Fonts"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
echo "> Kopieren..."
tar cp --exclude-from=$EXCLUDE $FROMDIR | (cd $DESTDIR ; tar xp)
echo "> Packen..."
tar cpz --exclude-from=$EXCLUDE $FROMDIR > "$SAVEDIR/UsrLocalShareFonts.tar.gz"
# Sichern von .texmf ------------------------------------- #
FROMDIR="$HOME/.texmf"
DESTDIR="$SAVEDIR/HomeTexmf"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
echo "> Kopieren..."
tar cp --exclude-from=$EXCLUDE $FROMDIR | (cd $DESTDIR ; tar xp)
echo "> Packen..."
tar cpz --exclude-from=$EXCLUDE $FROMDIR > "$SAVEDIR/HomeTexmf.tar.gz"
# Sichern von .cxoffice ------------------------------------- #
FROMDIR="$HOME/.cxoffice"
DESTDIR="$SAVEDIR/HomeCxoffice"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
echo "> Kopieren..."
tar cp --exclude-from=$EXCLUDE $FROMDIR | (cd $DESTDIR ; tar xp)
echo "> Packen..."
tar cpz --exclude-from=$EXCLUDE $FROMDIR > "$SAVEDIR/HomeCxoffice.tar.gz"
# Sichern von .kde/share/apps/kmail ------------------------------------- #
FROMDIR="$HOME/.kde/share/apps/kmail"
DESTDIR="$SAVEDIR/Mail$USER"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
echo "> Kopieren..."
tar cp --exclude-from=$EXCLUDE $FROMDIR | (cd $DESTDIR ; tar xp)
echo "> Packen..."
tar cpz --exclude-from=$EXCLUDE $FROMDIR > "$SAVEDIR/HomeKmail$USER.tar.gz"
# Sichern von .kde/ ohne .kde/share/apps/kmail --------------------------- #
FROMDIR="$HOME/.kde"
DESTDIR="$SAVEDIR/HomeKDE"
echo "> Sichern von $FROMDIR"
create_dir $DESTDIR
create_file $EXCLUDE
echo "$HOME/.kde/share/apps/kmail" > $EXCLUDE
echo "> Kopieren..."
tar cp --exclude-from=$EXCLUDE $FROMDIR | (cd $DESTDIR ; tar xp)
echo "> Packen..."
tar cpz --exclude-from=$EXCLUDE $FROMDIR > "$SAVEDIR/HomeKDE.tar.gz"
# 7) Versteckte Dateien in Home ohne .texmf, .cxoffice, .kde
# 8) /etc/ --> als Root
cd $HOME
exit 0
# --------------------------------------------------------- #