Moved automatic ZFS snapshot triggered by apt into seperate script. Moved 'logrotate' and 'initramfs' functions into 'debian.sh'
This commit is contained in:
28
apt-snapshot.sh
Executable file
28
apt-snapshot.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/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
|
||||
27
debian.sh
27
debian.sh
@@ -178,4 +178,31 @@ elif [[ "${1}" == '--tasksel' ]]; then
|
||||
|
||||
tasksel \
|
||||
--new-install
|
||||
elif [[ "${1}" == '--initramfs' ]]; then
|
||||
printf \
|
||||
"UMASK=0077\n" | \
|
||||
tee /etc/initramfs-tools/conf.d/umask.conf &> /dev/null
|
||||
|
||||
update-initramfs \
|
||||
-c \
|
||||
-k all
|
||||
elif [[ "${1}" == '--logrotate' ]]; then
|
||||
for file in /etc/logrotate.d/* ; do
|
||||
if grep -Eq "(^|[^#y])compress" "$file" ; then
|
||||
sed -i -r "s/(^|[^#y])(compress)/\1#\2/" "$file"
|
||||
fi
|
||||
done
|
||||
elif [[ "${1}" == '--systemctl-enable' ]]; then
|
||||
systemctl \
|
||||
enable \
|
||||
zfs.target
|
||||
systemctl \
|
||||
enable \
|
||||
zfs-import-cache
|
||||
systemctl \
|
||||
enable \
|
||||
zfs-mount
|
||||
systemctl \
|
||||
enable \
|
||||
zfs-import.target
|
||||
fi
|
||||
|
||||
31
install.sh
31
install.sh
@@ -110,15 +110,7 @@ if [[ "${ID}" == 'debian' ]] || [[ "${ID}" == 'elementary' ]]; then
|
||||
"${baseDir}/debian.sh" --dpkg-reconfigure
|
||||
fi
|
||||
|
||||
# if [[ "${ID}" == 'debian' ]]; then
|
||||
# printf \
|
||||
# 'REMAKE_INITRD=yes\n' | \
|
||||
# tee /etc/dkms/zfs.conf &> /dev/null
|
||||
# fi
|
||||
|
||||
if [[ ! "${*}" = *--no-part* ]]; then
|
||||
"${baseDir}/partition.sh" --efi
|
||||
fi
|
||||
"${baseDir}/partition.sh" --efi
|
||||
|
||||
if [[ "${ID}" == 'debian' ]] || [[ "${ID}" == 'elementary' ]]; then
|
||||
"${baseDir}/debian.sh" --purge-os-prober
|
||||
@@ -160,13 +152,7 @@ if [[ "${ID}" == 'debian' ]]; then
|
||||
fi
|
||||
|
||||
if [[ "${ID}" == 'debian' ]] || [[ "${ID}" == 'elementary' ]]; then
|
||||
printf \
|
||||
"UMASK=0077\n" | \
|
||||
tee /etc/initramfs-tools/conf.d/umask.conf &> /dev/null
|
||||
|
||||
update-initramfs \
|
||||
-c \
|
||||
-k all
|
||||
"${baseDir}/debian.sh" --initramfs
|
||||
elif [[ "${ID}" == 'fedora' ]]; then
|
||||
dracut \
|
||||
--force \
|
||||
@@ -192,18 +178,7 @@ if [[ ! "${*}" = *--no-part* ]]; then
|
||||
fi
|
||||
|
||||
if [[ "${ID}" == 'debian' ]] || [[ "${ID}" == 'elementary' ]]; then
|
||||
systemctl \
|
||||
enable \
|
||||
zfs.target
|
||||
systemctl \
|
||||
enable \
|
||||
zfs-import-cache
|
||||
systemctl \
|
||||
enable \
|
||||
zfs-mount
|
||||
systemctl \
|
||||
enable \
|
||||
zfs-import.target
|
||||
"${baseDir}/debian.sh" --systemctl-enable
|
||||
fi
|
||||
|
||||
zfs \
|
||||
|
||||
31
post-inst.sh
31
post-inst.sh
@@ -93,36 +93,9 @@ if [[ "${ID}" = 'debian' ]]; then
|
||||
fi
|
||||
|
||||
if [[ "${ID}" == 'debian' ]] || [[ "${ID}" == 'elementary' ]]; then
|
||||
for file in /etc/logrotate.d/* ; do
|
||||
if grep -Eq "(^|[^#y])compress" "$file" ; then
|
||||
sed -i -r "s/(^|[^#y])(compress)/\1#\2/" "$file"
|
||||
fi
|
||||
done
|
||||
"${baseDir}/debian.sh" --logrotate
|
||||
|
||||
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
|
||||
"${baseDir}/apt-snapshot.sh"
|
||||
fi
|
||||
|
||||
# if [[ ! "${*}" = *--no-part* ]]; then
|
||||
|
||||
Reference in New Issue
Block a user