29 lines
653 B
Bash
Executable File
29 lines
653 B
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
|
|
cat << EOF | tee /usr/bin/zfs-system-snapshot-apt &> /dev/null
|
|
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
|
|
TIMESTAMP="\$(date +%Y_%m_%d-%H_%M_%S)"
|
|
|
|
|
|
if [[ -z "\$(zfs list -t snapshot | grep 'apt-\${TIMESTAMP}')" ]]; then
|
|
zfs snapshot \$(zfs mount | grep 'ROOT' | sed 's| .*||')@apt-\${TIMESTAMP} && printf "\n- Snapshot taken\n\n"
|
|
fi
|
|
EOF
|
|
|
|
chmod \
|
|
+x \
|
|
/usr/bin/zfs-system-snapshot-apt
|
|
|
|
printf \
|
|
'DPkg::Pre-Install-Pkgs {"/usr/bin/zfs-system-snapshot-apt";};\n' | \
|
|
tee /etc/apt/apt.conf.d/90-zfs_system-snapshot &> /dev/null
|
|
|
|
printf \
|
|
'DPkg::Post-Invoke {"apt moo";};\n' | \
|
|
tee /etc/apt/apt.conf.d/99-apt_moo &> /dev/null
|