void-bash-installer/files/bin/void-snapshot

73 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 "Es wird bei jede volle Stunde vom Betriebsystem ein Snapshot angelegt."
echo "So ist das Betriebssystem auch bei Problemen bootbar."
echo "Optional kann auch 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
exit
fi
cfg="/etc/btrbk/btrbk.conf.void"
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-grub 2> /dev/null; then
echo update-grub failed
fi
if [ "${cron}" ]; then
test -f /etc/void-snapshot.cfg && . /etc/void-snapshot.cfg
if [ "${REGULAR_SNAPSHOT_HOME}" ]; then
mkdir -p "/var/lib/backup/quelle/rootfs/system/snapshots/${word}"
btrbk --config="${cfg}" --quiet run "${word}home"
fi
fi