nette wrapper für snaphots.
datei für install anlegen: /usr/local/bin/xisnap
(xisnap ist natürlich nur ein vorschlag, kann auch anders heißen)
Bash
#!/bin/sh
# xbps-install wrapper mit snapper snapshots
# Check if snapper is available
if command -v snapper >/dev/null 2>&1 && [ -d /.snapshots ]; then
# Create pre-snapshot
PRE_NUM=$(snapper --config root create --type pre --cleanup-algorithm number --print-number --description "xbps-install $*" 2>/dev/null)
[ -n "$PRE_NUM" ] && echo ":: Created pre-snapshot #$PRE_NUM"
# Run xbps-install
/usr/bin/xbps-install "$@"
RESULT=$?
# Create post-snapshot
if [ -n "$PRE_NUM" ]; then
POST_NUM=$(snapper --config root create --type post --pre-number "$PRE_NUM" --cleanup-algorithm number --print-number --description "xbps-install $*" 2>/dev/null)
[ -n "$POST_NUM" ] && echo ":: Created post-snapshot #$POST_NUM"
# Update GRUB if grub-btrfsd isn't running
if ! pgrep -x grub-btrfsd >/dev/null 2>&1; then
grub-mkconfig -o /boot/grub/grub.cfg >/dev/null 2>&1 &
fi
fi
exit $RESULT
fi
exec /usr/bin/xbps-install "$@"
Alles anzeigen
datei für remove anlegen: /usr/local/bin/xrsnap
(xrsnap ist natürlich nur ein vorschlag, kann auch anders heißen)
Bash
#!/bin/sh
# xbps-remove wrapper mit snapper snapshots
# Check if snapper is available
if command -v snapper >/dev/null 2>&1 && [ -d /.snapshots ]; then
# Create pre-snapshot
PRE_NUM=$(snapper --config root create --type pre --cleanup-algorithm number --print-number --description "xbps-remove $*" 2>/dev/null)
[ -n "$PRE_NUM" ] && echo ":: Created pre-snapshot #$PRE_NUM"
# Run xbps-remove
/usr/bin/xbps-remove "$@"
RESULT=$?
# Create post-snapshot
if [ -n "$PRE_NUM" ]; then
POST_NUM=$(snapper --config root create --type post --pre-number "$PRE_NUM" --cleanup-algorithm number --print-number --description "xbps-remove $*" 2>/dev/null)
[ -n "$POST_NUM" ] && echo ":: Created post-snapshot #$POST_NUM"
# Update GRUB if grub-btrfsd isn't running
if ! pgrep -x grub-btrfsd >/dev/null 2>&1; then
grub-mkconfig -o /boot/grub/grub.cfg >/dev/null 2>&1 &
fi
fi
exit $RESULT
fi
exec /usr/bin/xbps-remove "$@"
Alles anzeigen
wrapper ausführbar machen:
sudo chmod +x /usr/local/bin/{xisnap,xrsnap}
Um Snapper zu nutzen braucht man doch nicht zwingend den btrfs-assistant! Man kann auch alles im Terminal erledigen, der Assi macht es nur anschaulicher und man muss sich nicht die einzelnen Befehle merken oder heraussuchen.
natürlich braucht man den btrfs-assistent nicht, aber für neulinge macht er einiges einfacher.
ich mag die nix-pakete. die werden schon seit ewigkeiten von void unterstützt.