Adds apt hooks to create a snapshot before operations.
This commit is contained in:
parent
9611285132
commit
6ca4256b3e
|
|
@ -1,6 +1,13 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
POOL_NAME=rpool
|
ROOT_DATASET=$(zfs list -H -o name,mountpoint | awk '$2 == "/" { print $1 }')
|
||||||
|
if [ -z "$ROOT_DATASET" ]; then
|
||||||
|
echo "Error: Could not detect ZFS dataset mounted at /" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Usually the pool name is the first component (rpool/ROOT/ubuntu → rpool)
|
||||||
|
POOL_NAME="${ROOT_DATASET%%/*}"
|
||||||
|
|
||||||
# Create zfs snapshots before apt operations using apt hooks
|
# Create zfs snapshots before apt operations using apt hooks
|
||||||
|
|
||||||
|
|
@ -9,8 +16,8 @@ POOL_NAME=rpool
|
||||||
conf_print_snapPrepApt() {
|
conf_print_snapPrepApt() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
DATE="'$(date +%F-%T)'"
|
DATE="\$(date +%F-%T)"
|
||||||
zfs snapshot -r ${POOL_NAME}@snap_pre_apt_$DATE
|
zfs snapshot -r ${POOL_NAME}@snap_pre_apt_\$DATE
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
conf_print_snapPrepApt | sudo tee /usr/local/sbin/snapPrepApt
|
conf_print_snapPrepApt | sudo tee /usr/local/sbin/snapPrepApt
|
||||||
|
|
@ -24,15 +31,14 @@ DPkg::Pre-Invoke {"/usr/local/sbin/snapPrepApt || true";};
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
conf_print_apt_conf_d | sudo tee /etc/apt/apt.conf.d/90zfs-pre-apt-snapshot
|
conf_print_apt_conf_d | sudo tee /etc/apt/apt.conf.d/90zfs-pre-apt-snapshot
|
||||||
sudo chmod +x /etc/apt/apt.conf.d/90zfs-pre-apt-snapshot
|
|
||||||
|
|
||||||
# 3. Kernel Updates
|
# 3. Kernel Updates
|
||||||
# Use /etc/kernel/preinst.d/ to snapshot before kernel installation:
|
# Use /etc/kernel/preinst.d/ to snapshot before kernel installation:
|
||||||
conf_print_kernel_preinst_d() {
|
conf_print_kernel_preinst_d() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
DATE='$(date +%F-%T)'
|
DATE="\$(date +%F-%T)"
|
||||||
zfs snapshot -r ${POOL_NAME}@pre-kernel_${DATE}
|
zfs snapshot -r \${POOL_NAME}@pre-kernel_\${DATE}
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
conf_print_kernel_preinst_d | sudo tee /etc/kernel/preinst.d/90zfs-pre-kernel-snapshot
|
conf_print_kernel_preinst_d | sudo tee /etc/kernel/preinst.d/90zfs-pre-kernel-snapshot
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue