backup.sh erstellt ein vollständiges Backup des Systems und speichert dieses in einem komprimierten tar.bz2-Archiv.
#!/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"
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.