Backup des persistent memory

Um Backups des persistent memory einer Flash-Disk Installation zu erstellen wird Platz auf einer separaten Partition benötigt. Das Script kn-backup.sh sollte nach '/usr/sbin/' gespeichert und mit "chmod 744" ausführbar gemacht werden (Download).

Achtung: für die Variante "incremental backup" kann nur eine mit einem Linux-Dateisystem formattierte Partition verwendet werden (nicht NTFS).

Grundzüge des Backup

  • KNOPPIX enthält das komprimierte Dateisystem
  • knoppix-data.img (.aes) ist das persistent memory und enthält
    → neu installierte Pakete und neue Dateien
    → Markierungen über gelöschte Pakete und Dateien innerhalb KNOPPIX
  • Neu: Falls persistent memory innerhalb einer Overlay partition gewählt wurde, so ist der Inhalt des persistent memory in der Partiton #2 der Flash Disk Installation
  • UNIONFS überlagert (dekomprimiertes) KNOPPIX mit persistent memory

 Vollbackup oder incremental Backup

kn-backup9

 

  • Backup whole persistent memory
    → speichert alles aus persistent memory als .tar.gz-Datei
    → schreibt einen Vermerk in eine Kommentardatei
  • Backup personal persistent memory
    → speichert '/etc/' und '/home/' aus persistent memory als .tar.gz-Datei
    → schreibt einen Vermerk in eine Kommentardatei
  • Create incremental backup
    → speichert zwischenzeitliche Änderungen aus persistent memory in daily.n-Verzeichnis
    → verschiebt daily.n jeweils eine Nummer höher (insgesamt 10 daily.n-Verzeichnisse)

 

kn-backup2

 

kn-backup3

 

kn-backup4

 

  • Restore elder (whole/personal) backup
    → zeigt zur Auswahl die Vermerke der Kommentardateien
    → erstellt ein spezielles Script '/mnt-system/bufi'

 

kn-backup5
 
  • Repair persistent memory with incremental backup
    → zeigt vorhandene Backup-Verzeichnisse
    → setzt Inhalt des persistent memory zurück auf den Stand des gewählten daily.n-Verzeichnisses

 

kn-backup11

 

  • Restore bzw. Repair
    → Aufforderung alle übrigen laufenden Programme zu schliessen
    → Durchführung der Aktion und anschliessend Neustart von Knoppix

 

kn-backup10

 

Eintrag in das Knoppix Menü

Das folgende Script als kn-backup.desktop im Verzeichnis '/usr/share/applications' abgespeichert ergibt den Menüeintrag "Backup Overlay" in der Gruppe Systemwerkzeuge.

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Overlay backup
Name[de]=Backup Overlay
Comment=Create backups of persistent memory
Comment[de]=Backups vom persistent memory erstellen
Icon=accessories-dictionary
Exec=su-to-root -X -c "/usr/bin/lxterminal -e /usr/sbin/kn-backup.sh"
Terminal=false
StartupNotify=true
Categories=System;

Top

Incremental Backup als Cron-Job

Falls jemand die zwischenzeitlichen Änderungen im persistent memory automatisch speichern möchte, so kann das folgende Script verwendet werden.

Dieses als kn-cron-backup.sh im Verzeichnis '/usr/sbin' abspeicheren und als root mit "crontab -e" einen Cron-Job erstellen. Im Script unbedingt die Variable PFAD setzen je nachdem, wo das incremental Backup gespeichert werden soll. Es kann nur eine Partition mit einem Linux-Filesystem verwendet werden, also nicht NTFS etc.

#! /bin/bash
#----------------------------------------------------------------------
# kn-cron-incremental.sh (V0.1-1)
# Description: Create incremental backup of persistent memory
# from flash disk installation.
# Use script within a cronjob.
# Author: Werner P. Schulz <Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!>
# Created at: Sa Mai 25 12:13 CEST 2013
# License: This file is licensed under the GPL v3.
#----------------------------------------------------------------------
# Insert value of partiton you want to use
# For example: PFAD="/media/sdb2"
PFAD=""
if [ "$PFAD" = "" ]; then
  echo "No value for variable 'PFAD'!"; exit
fi
if ! [ -d $PFAD/knx/bufi/incr ]; then
echo "Pfad nicht da"
  mkdir $PFAD/knx/bufi/incr
else
  echo "Pfad da"  
fi
ls $PFAD/knx/bufi/incr
if ! [ -d $PFAD/knx/bufi/incr/daily.0 ] ; then
  mkdir -p $PFAD/knx/bufi/incr/daily.0
fi
clear
setterm -cursor off
tput cup  19 1
rsync -av --numeric-ids --delete --delete-after --exclude=*/Cache/*  \
  /KNOPPIX-DATA/ $PFAD/knx/bufi/incr/daily.0 \
  | awk '{printf "%-78s\r", substr($1, 1, 78)}'
setterm -cursor on
if ! [ $? = 24 -o $? = 0 ] ; then
  echo"Fatal: rsync 'persistent memory' finished with errors!"
fi
touch $PFAD/knx/bufi/incr/daily.0
if [ -d $PFAD/knx/bufi/incr/daily.9 ] ; then
  rm -rf $PFAD/knx/bufi/incr/daily.9
fi
# rotate snapshots
for OLD in 9 8 7 6 5 4 3 2 1  ; do
  if [ -d $PFAD/knx/bufi/incr/daily.$OLD ] ; then
    NEW=$[ $OLD + 1 ]
    touch $PFAD/knx/bufi/.timestamp -r $PFAD/knx/bufi/incr/daily.$OLD
    mv $PFAD/knx/bufi/incr/daily.$OLD $PFAD/knx/bufi/incr/daily.$NEW
    touch $PFAD/knx/bufi/incr/daily.$NEW -r $PFAD/knx/bufi/.timestamp
  fi
done
if [ -d $PFAD/knx/bufi/incr/daily.0 ] ; then
  cp -al $PFAD/knx/bufi/incr/daily.0 $PFAD/knx/bufi/incr/daily.1
fi
sync
echo "Finished incremental backup via cronjob"

 Top