This commit is contained in:
teldra 2021-05-10 09:24:40 +02:00
parent 531172f818
commit 8f908be592
2 changed files with 74 additions and 70 deletions

View File

@ -28,85 +28,89 @@ do
fhelp fhelp
exit exit
;; ;;
update) update) update=y ;;
update=y passwd) passwd=y ;;
;; clean) do=clean ;;
passwd) run) do=run ;;
passwd=y
;;
esac esac
done done
if [[ -f "${backupcfg}" ]]; then test -z "${do}" && do=run
source "${backupcfg}"
else
echo "${backupcfg} fehlt."
echo "Diese Datei wird normalerweise durch \`void-createbackupcontainer\`"
echo "angelegt. Bitte Sprich mit deinem Systemadministrator."
fi
if [ -z "${UUID}" ]; then if [[ ! -f /etc/btrbk/btrbk.conf ]]; then
echo "Keine Backupplatte angegeben." if [[ -f "${backupcfg}" ]]; then
exit 1 source "${backupcfg}"
fi else
echo "${backupcfg} fehlt."
if [ ! -e "/dev/disk/by-uuid/${UUID}" ]; then echo "Diese Datei wird normalerweise durch \`void-createbackupcontainer\`"
echo "Bitte Backupfestplatte anschliessen." echo "angelegt. Bitte Sprich mit deinem Systemadministrator."
exit 1
fi
if [ -e /tmp/backup ]; then
echo "Es läuft schon ein Backupvorgang oder wurde nicht richtig beendet."
echo "Bei letzterem: 'sudo rm -rf /tmp/backup'"
exit 1
fi
touch /tmp/backup
if [[ "${passwd}" == "y" ]]; then
cryptsetup luksChangeKey "/dev/disk/by-uuid/${UUID}"
rm -rf /tmp/backup
exit 0
fi
function finish {
sync
if [ "${poweroff}" = "y" ]; then
shutdown -h now
fi fi
sleep 4
umount "${ziel}" if [ -z "${UUID}" ]; then
echo " " echo "Keine Backupplatte angegeben."
echo " " exit 1
if [[ "${MOUNTEDBY}" == "script" ]]; then
cryptsetup close "luks-${UUID}"
echo "Festplatte kann nun sicher entfernt werden."
elif [[ "${MOUNTEDBY}" == "gnome" ]]; then
echo "Festplatte bitte mit der grafischen Oberflaeche auswerfen (wie ein USB-Stick)"
echo ""
echo "oder:"
echo "sudo umount /dev/mapper/luks-${UUID}"
echo "sudo cryptsetup close luks-${UUID}"
echo ""
fi fi
rm -rf /tmp/backup
echo "FERTIG"
} if [ ! -e "/dev/disk/by-uuid/${UUID}" ]; then
trap finish EXIT echo "Bitte Backupfestplatte anschliessen."
exit 1
fi
if [ ! $(mountpoint -q -x "/dev/mapper/luks-${UUID}") ]; then if [ -e /tmp/backup ]; then
if ! cryptsetup open UUID="${UUID}" "luks-${UUID}"; then echo "Es läuft schon ein Backupvorgang oder wurde nicht richtig beendet."
echo "Konnte /dev/disk/by-uuid/${UUID} nicht öffnen." echo "Bei letzterem: 'sudo rm -rf /tmp/backup'"
exit 1
fi
touch /tmp/backup
if [[ "${passwd}" == "y" ]]; then
cryptsetup luksChangeKey "/dev/disk/by-uuid/${UUID}"
rm -rf /tmp/backup
exit 0
fi
function finish {
sync
if [ "${poweroff}" = "y" ]; then
shutdown -h now
fi
sleep 4
umount "${ziel}"
echo " "
echo " "
if [[ "${MOUNTEDBY}" == "script" ]]; then
cryptsetup close "luks-${UUID}"
echo "Festplatte kann nun sicher entfernt werden."
elif [[ "${MOUNTEDBY}" == "gnome" ]]; then
echo "Festplatte bitte mit der grafischen Oberflaeche auswerfen (wie ein USB-Stick)"
echo ""
echo "oder:"
echo "sudo umount /dev/mapper/luks-${UUID}"
echo "sudo cryptsetup close luks-${UUID}"
echo ""
fi
rm -rf /tmp/backup
echo "FERTIG"
}
trap finish EXIT
if [ ! $(mountpoint -q -x "/dev/mapper/luks-${UUID}") ]; then
if ! cryptsetup open UUID="${UUID}" "luks-${UUID}"; then
echo "Konnte /dev/disk/by-uuid/${UUID} nicht öffnen."
exit
fi
MOUNTEDBY="script"
else
MOUNTEDBY="gnome"
fi
if ! mount "/dev/mapper/luks-${UUID}" "${ziel}"; then
echo "Konnte /dev/mapper/luks-${UUID} in ${ziel} nicht mounten."
exit exit
fi fi
MOUNTEDBY="script"
else else
MOUNTEDBY="gnome" cfg="/etc/btrbk/btrbk.conf"
fi
if ! mount "/dev/mapper/luks-${UUID}" "${ziel}"; then
echo "Konnte /dev/mapper/luks-${UUID} in ${ziel} nicht mounten."
exit
fi fi
if mountpoint -q /var/lib/backup/quelle/bootfs; then if mountpoint -q /var/lib/backup/quelle/bootfs; then
@ -117,7 +121,7 @@ fi
mkdir -p /var/lib/backup/quelle/rootfs/system/backup "/var/lib/backup/ziel/void/rootfs" "/var/lib/backup/ziel/void/homefs" mkdir -p /var/lib/backup/quelle/rootfs/system/backup "/var/lib/backup/ziel/void/rootfs" "/var/lib/backup/ziel/void/homefs"
for t in backup "${boot}"; do for t in backup "${boot}"; do
if [[ "${t}" ]]; then if [[ "${t}" ]]; then
if ! btrbk --config="${cfg}" --progress --quiet run "${t}"; then if ! btrbk --config="${cfg}" --progress --quiet "${do}" "${t}"; then
btrbk --config="${cfg}" --progress --quiet clean btrbk --config="${cfg}" --progress --quiet clean
echo "Wegen Fehler nicht herunterfahren." echo "Wegen Fehler nicht herunterfahren."
poweroff=n poweroff=n

View File

@ -30,7 +30,6 @@ case $1 in
;; ;;
*) *)
infos infos
echo "Falscher aufruf"
exit exit
;; ;;
esac esac
@ -41,6 +40,7 @@ if [ "$#" -eq "0" ]; then
fi fi
cfg="/etc/btrbk/btrbk.conf.void" 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 if mountpoint -q /var/lib/backup/quelle/bootfs; then
mkdir -p "/var/lib/backup/quelle/bootfs/system/snapshots/${word}" mkdir -p "/var/lib/backup/quelle/bootfs/system/snapshots/${word}"