#!/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 "" echo "Es wird bei jedem Update vom Betriebsystem ein Snapshot angelegt." echo "Es wird jede volle Stunde vom Betriebsystem ein Snapshot angelegt." echo "So ist das Betriebssystem auch bei Problemen bootbar." echo "" 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 "Dafür folgendes im Terminal ausführen:" echo 'echo REGULAR_SNAPSHOT_HOME=1 | sudo tee -a /etc/void-snapshot.cfg' echo "" echo "Nur für Experten:" echo 'echo NO_UPDATE_GRUB=1 | sudo tee -a /etc/void-snapshot.cfg' } cron="" update="" case $1 in update) update=1 word="update" ;; cron) cron=1 word="regular" ;; *) infos exit ;; esac if [ "$#" -eq "0" ]; then infos exit fi cfg="/etc/btrbk/btrbk.conf.void" test -f "/etc/btrbk/btrbk.conf" && cfg="/etc/btrbk/btrbk.conf" 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 [[ -z "${NO_UPDATE_GRUB}" ]]; then if ! update-grub 2> /dev/null; then echo update-grub failed exit fi 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}" if ! btrbk --config="${cfg}" --quiet run "${word}home"; then btrbk --config="${cfg}" --quiet clean "${word}home" echo "fail: btrbk --config=${cfg} --quiet clean ${word}home" exit fi fi fi