74 lines
1.8 KiB
Bash
74 lines
1.8 KiB
Bash
#!/bin/bash
|
|
if [ "${UID}" -ne "0" ]; then
|
|
echo "Keine Rootrechte."
|
|
exit 1
|
|
fi
|
|
|
|
infos() {
|
|
echo "Snapshots sind Kopien der Dateien die keinen zusätzlichen Platz"
|
|
echo "benötigen."
|
|
echo "Es wird bei jedem Update vom Betriebsystem ein Snapshot angelegt."
|
|
echo "So ist das Betriebssystem auch bei Problemen bootbar."
|
|
echo "Optional kann jede Stunde ein Snapshot der persönlichen Daten"
|
|
echo "angelegt werden. Dann verliert man bei versehentlichem löschen"
|
|
echo "maximal die Arbeit einer Stunde."
|
|
echo "Dafuer folgendes im Terminal ausführen:"
|
|
echo 'echo REGULAR_SNAPSHOT_HOME=1 | sudo tee /etc/void-snapshot.cfg'
|
|
}
|
|
|
|
cron=""
|
|
update=""
|
|
case $1 in
|
|
update)
|
|
update=1
|
|
word="update"
|
|
;;
|
|
cron)
|
|
cron=1
|
|
word="regular"
|
|
;;
|
|
*)
|
|
infos
|
|
echo "Falscher aufruf"
|
|
exit
|
|
;;
|
|
esac
|
|
|
|
if [ "$#" -eq "0" ]; then
|
|
infos
|
|
echo "Falscher aufruf"
|
|
exit
|
|
fi
|
|
|
|
cfg="/etc/btrbk/btrbk.conf.void"
|
|
test -f /etc/void-snapshot.cfg && . /etc/void-snapshot.cfg
|
|
|
|
if [ "${update}" ]; then
|
|
if mountpoint -q /var/lib/backup/quelle/bootfs; then
|
|
mkdir -p "/var/lib/backup/quelle/bootfs/system/snapshots/${word}"
|
|
if ! btrbk --config="${cfg}" --quiet run "${word}boot"; then
|
|
btrbk --config="${cfg}" --quiet clean "${word}boot"
|
|
echo "fail: btrbk --config=${cfg} --quiet run ${word}boot"
|
|
exit
|
|
fi
|
|
fi
|
|
|
|
mkdir -p "/var/lib/backup/quelle/rootfs/system/snapshots/${word}"
|
|
if ! btrbk --config="${cfg}" --quiet run "${word}root"; then
|
|
btrbk --config="${cfg}" --quiet clean "${word}root"
|
|
echo "fail: btrbk --config=${cfg} --quiet run ${word}root"
|
|
exit
|
|
fi
|
|
if [ "${update}" ]; then
|
|
if ! update-grub 2> /dev/null; then
|
|
echo update-grub failed
|
|
fi
|
|
fi
|
|
elif [ "${cron}" ]; then
|
|
if [ "${REGULAR_SNAPSHOT_HOME}" ]; then
|
|
mkdir -p "/var/lib/backup/quelle/rootfs/system/snapshots/${word}"
|
|
btrbk --config="${cfg}" --quiet run "${word}home"
|
|
fi
|
|
fi
|
|
|