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

85 lines
2.1 KiB
Plaintext
Raw Normal View History

2021-04-15 10:27:27 +02:00
#!/bin/bash
if [ "${UID}" -ne "0" ]; then
echo "Keine Rootrechte."
exit 1
fi
2021-05-07 18:52:50 +02:00
infos() {
2021-05-07 19:41:32 +02:00
echo "Snapshots sind Kopien der Dateien die keinen zusätzlichen Platz"
echo "benötigen."
2021-05-11 09:21:21 +02:00
echo ""
2021-05-07 19:41:32 +02:00
echo "Es wird bei jedem Update vom Betriebsystem ein Snapshot angelegt."
2021-05-11 09:21:21 +02:00
echo "Es wird jede volle Stunde vom Betriebsystem ein Snapshot angelegt."
2021-05-07 19:41:32 +02:00
echo "So ist das Betriebssystem auch bei Problemen bootbar."
2021-05-11 09:21:21 +02:00
echo ""
2021-05-09 14:20:03 +02:00
echo "Optional kann auch jede Stunde ein Snapshot der persönlichen Daten"
2021-05-07 19:41:32 +02:00
echo "angelegt werden. Dann verliert man bei versehentlichem löschen"
echo "maximal die Arbeit einer Stunde."
2021-05-11 09:21:21 +02:00
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'
2021-04-18 21:15:25 +02:00
}
cron=""
update=""
2021-05-07 19:41:32 +02:00
case $1 in
update)
update=1
word="update"
;;
cron)
cron=1
word="regular"
;;
*)
2021-05-07 23:13:24 +02:00
infos
2021-05-07 19:41:32 +02:00
exit
;;
esac
2021-04-18 11:38:18 +02:00
2021-05-07 18:52:50 +02:00
if [ "$#" -eq "0" ]; then
2021-05-07 23:13:24 +02:00
infos
2021-05-07 19:41:32 +02:00
exit
2021-04-18 21:15:25 +02:00
fi
2021-05-07 18:52:50 +02:00
cfg="/etc/btrbk/btrbk.conf.void"
2021-05-10 09:24:40 +02:00
test -f "/etc/btrbk/btrbk.conf" && cfg="/etc/btrbk/btrbk.conf"
2021-04-18 21:15:25 +02:00
2021-05-09 14:20:03 +02:00
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"
2021-05-07 18:52:50 +02:00
exit
fi
2021-05-09 14:20:03 +02:00
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
2021-05-11 09:21:21 +02:00
if [[ -z "${NO_UPDATE_GRUB}" ]]; then
if ! update-grub 2> /dev/null; then
echo update-grub failed
exit
fi
2021-05-09 14:20:03 +02:00
fi
if [ "${cron}" ]; then
test -f /etc/void-snapshot.cfg && . /etc/void-snapshot.cfg
2021-05-07 19:41:32 +02:00
if [ "${REGULAR_SNAPSHOT_HOME}" ]; then
mkdir -p "/var/lib/backup/quelle/rootfs/system/snapshots/${word}"
2021-05-10 10:47:40 +02:00
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
2021-05-10 13:02:30 +02:00
fi
2021-05-07 18:52:50 +02:00
fi
2021-04-18 15:52:09 +02:00
fi
2021-05-07 19:41:32 +02:00