Heute beschäftige ich mich mit dem Thema Datensicherung & Wiederherstellung.
Grundsätzlich hat es bei mir bisher immer gereicht, mein ~/ Home Verzeichnis zu sichern. Zu achten war hier lediglich, dass auch die versteckten Ordner und Dateien mitgesichert wurden.
Somit hatte ich grundsätzlich meine wichtigsten Daten z.b. Dokumente & Downloads, mit denen ich arbeite, sowie sämtliche Konfigurationseinstellungen meiner Programme, welche in versteckten Ordnern gesichert werden.
In Kubuntu kann man aber auch weiter gehen und auch gleich sämtliche Pakete, welche so über die Zeit installiert werden, sichern. Bei einem neuen System kann man dann sämtliche Programme mit wenigen Befehlen zurückholen.
Da ich die Befehle für die Sicherung nicht jedesmal händisch eingeben möchte, habe ich ein Bash-Script "create_packagelist.sh" erstellt mit folgendem Inhalt:
mkdir ~/Backups
cd ~/Backups
kate create_packagelist.sh
#!/bin/bash
# this script creates a list from installed packages
# and saves into ~/Backups folder
#****************
# commands
#****************
# create packages
dpkg --get-selections | awk '!/deinstall|purge|hold/ {print $1}' > packages.list
while [ ! -e packages.list ]; do
sleep 1 # wait until file exists
done
echo packages.list ... created
# create automatic & manual package status
apt-mark showauto > package-states-auto
while [ ! -e package-states-auto ]; do
sleep 1 # wait until file exists
done
echo package-states-auto ... created
apt-mark showmanual > package-states-manual
while [ ! -e package-states-manual ]; do
sleep 1 # wait until file exists
done
echo package-states-manual ... created
# create package sources
find /etc/apt/sources.list* -type f -name '*.list' -exec bash -c 'echo -e "\n## $1 ";grep "^[[:space:]]*[^#[:space:]]" ${1}' _ {} \; > sources.list.sav
while [ ! -e sources.list.sav ]; do
sleep 1 # wait until file exists
done
echo sources.list.sav ... created
echo done
Die Datei muss natürlich erst noch ausführbar gemacht werden. Ich habe die Datei in ~/Backups angelegt, worin auch die Sicherungsdaten erstellt werden.
sudo chmod +x create_packagelist.sh
Nachdem ich das Programm ausgeführt habe, wurden mir entsprechende Dateien angelegt. Im Bild seht ihr auch, dass ich den automatische und manuellen Paketstatus sowie die Paketquellen gesichert habe.
Die Datei ausführen seht ihr in der ersten Zeile mit dem Befehl:
./create_packagelist.sh
Wiederherstellung der Pakete
Als erstes werden die Paketquellen wieder ins System kopiert. Dies könnt ihr entweder manuell machen und die zusätzlichen Zeilen der Datei ~/Backups/sources.list.sav mit der Datei /etc/apt/sources.list abgleichen.
Oder ihr überschreibt einfach auf dem neuen System die Datei mit der gesicherten:
sudo cp ~/Backups/sources.list.sav /etc/apt/sources.list
Anschließend müssen die Quellen aktualisiert werden:
sudo apt-get update
Mit folgenden Befehlen könnt ihr dann die Listen sowie den Status der Pakete, sofern mitgesichert, installieren:
xargs -a "packages.list" sudo apt-get install
xargs -a "package-states-auto" sudo apt-mark auto
xargs -a "package-states-manual" sudo apt-mark manual
Hierbei könnte die letzte Zeile auch ausgelassen werden, da die nachinstallierten Pakete automatisch als "manuell" gekennzeichnet wurden.