Benutzer-Werkzeuge

Webseiten-Werkzeuge


scytheman:zeugs:scripte:backup.sh

↑ zurück

backup.sh

Beschreibung

backup.sh erstellt ein vollständiges Backup des Systems und speichert dieses in einem komprimierten tar.bz2-Archiv.

Benötigt

  • tar
  • bzip2

Code

#!/bin/sh  
 
# error log
ERR_LOG="error.log"
 
# exclude these files and directories
# default excludes:
EXCL_DEF="
        --exclude=/mnt/* 
        --exclude=/proc/*
        --exclude=/sys/*
        --exclude=/tmp/*
        --exclude=/usr/local/games/*
        --exclude=/usr/share/games/*
        --exclude=/usr/src/*.tar.bz2
        --exclude=/var/cache/apt/apt-file/* 
        --exclude=/var/cache/apt/archives/* 
        --exclude=/var/lib/apt/lists/*dists*
        --exclude=/var/run/*"
 
# user specific excludes:
EXCL_USR="
        --exclude=/home/*/.gqview/thumbnails/*
        --exclude=/home/*/icons/*
        --exclude=/home/*/nvidia/*.run 
        --exclude=/home/*/*screenshots*
        --exclude=/home/*/.thumbnails/*
        --exclude=/home/*/wallpaper/*
        --exclude=/home/*/.wesnoth/saves/*"
 
# check for root
if [ "$UID" != "0" ]
then
    echo "warning: you should be root to run this script."
    echo
    sleep 5
fi
 
# delete old log
if [ -f $ERR_LOG ]
then
    echo "deleting old error log"
    echo
    rm -f $ERR_LOG
fi
 
# create backup (tar.bz2 archive)
#  -c create
#  -p preserve permissions
#  -j bzip2 compression
#  -v verbose output
#  -f filename
filename="backup-$(hostname)-$(date +%Y-%m-%d).tar.bz2"
time tar -cpjvf $filename $EXCL_DEF $EXCL_USR / 2>$ERR_LOG
 
# check for reported errors
if [ -f $ERR_LOG ]
then
    echo
    echo "warning: there were some errors reported. please take a look at $ERR_LOG."
    echo
fi  
 
echo
echo "unpack with cd /; tar -xpjf $filename"

Anmerkung

Dieses Script wird einfach als root in dem Verzeichnis ausgeführt, in dem das fertige Backup angelegt werden soll. Falls während des Backup-Vorgangs Fehler auftreten sollten, werden diese in die Datei error.log geschrieben und können später nachgelesen werden. Zum Komprimieren wird bzip2 verwendet, welches zwar eine gute Kompression bietet, aber auch recht langsam ist. Zum Beschleunigen des Vorgangs können die tar-Parameter so angepasst werden, dass statt bzip2 gzip genutzt wird (-z statt -j).

Zu Beginn des Scripts werden diverse Verzeichnisse festgelegt, die vom Backup ausgeschlossen werden sollen. Diese können nach Belieben erweitert werden. Zum Wiedereinspielen des Backups wechselt man in das Wurzelverzeichnis / und führt den Befehl tar -xpjf Dateinamne als root aus.

scytheman/zeugs/scripte/backup.sh.txt · Zuletzt geändert: 2014/03/01 17:13 (Externe Bearbeitung)