hier ein script für updates des Systemes incl vorherigen snapshot. Dieser script ist auf das btrfs Dateisystem ausgelegt, kann aber mit rsync für ext angepasst werden. Pacman-Cache und Mirrors werden optimiert. Es wird erst abgefragt ob ein Update vorhanden ist und dann erst gestartet oder exit.
Weiter wird der kernel / initramfs kopiert und ein stable angesetzt, so kann man im Notfall auch dieses snapshot booten um das Original-System zu reparieren falls beim update etwas schief läuft.
Das ursprüngliche Script kommt von unicks.eu und wurde von mir etwas verändert. Es läuft auf ein archlinux und sollte eigendlich auch auf Manjaro laufen.
Code: Alles auswählen
#!/bin/bash
# System Update incl. Snapshot
# ---------------------------
[ `whoami` != "root" ] && printf "\n%s\n\n" "Script muß als Root ausführen werden" && exit 0
up=$(checkupdates);
if [ -z "$up" ]; then
echo "Kein Update vorhanden"
exit 1
 else
echo $(date +%d-%m-%y/%H:%M:%S) $up >> /var/log/update/update.log ##Logdatei nicht unbedingt nötig
unset up
fi
BTRFS=/usr/bin/btrfs
PACMAN=/usr/bin/pacman
MV=/usr/bin/mv
CP=/usr/bin/cp
REFLECTOR=/usr/bin/reflector
cd / ## Wichtig damit die Pfade korrekt sind, gab bei mir ein Problemchen
# ----- Snapshot System -----
# ---------------------------
$BTRFS subvolume delete /.snapshots/OLDSTABLE
$MV /.snapshots/STABLE /.snapshots/OLDSTABLE
$BTRFS subvolume snapshot / /.snapshots/STABLE
$CP /.snapshots/fstab.bak /.snapshots/STABLE/etc/fstab
$CP /boot/vmlinuz-linux /boot/vmlinuz-linux-stable
$CP /boot/initramfs-linux.img /boot/initramfs-linux-stable.img
# ----- Update System -------
# ---------------------------
$REFLECTOR --country 'Germany' -l 25 -p https --sort rate --save /etc/pacman.d/mirrorlist
$PACMAN -Syyu
$PACMAN -Sc --noconfirm
#  Balance Filesystem
# --------------------------
$BTRFS balance start -dusage=55 /
exit 2
peace