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

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