Plain-English ZFS snapshot scheduling, retention cleanup, and low-space protection for Unraid.
### 2026.06.21.t04 (2026-06-21)
- Removed unfinished spiped controls from the ZFS Send WebGUI while keeping the staged backend/config plumbing in place for future work. Existing hidden spiped jobs are preserved in config, but the GUI no longer offers spiped for new jobs.
ZFS Auto Snapshot adds plain-English scheduling and safe snapshot lifecycle management for Unraid. It keeps recent snapshots, consolidates older ones by day/week, and cleans up for low-space pressure using your configured prefix safeguards.
https://forums.unraid.net/topic/197348-plugin-zfs-auto-snapshot/
https://raw.githubusercontent.com/bstone108/zfsautosnapshot-unraid/testing/dist/zfs-autosnapshot-2026.06.21.t04-noarch-1.txz
6b979fb20ecc8c0d04a221809ee40318
/dev/null 2>&1; then
UPGRADEPKG="$(command -v upgradepkg)"
elif [[ -x /sbin/upgradepkg ]]; then
UPGRADEPKG="/sbin/upgradepkg"
elif [[ -x /usr/sbin/upgradepkg ]]; then
UPGRADEPKG="/usr/sbin/upgradepkg"
else
echo "ERROR: upgradepkg not found on system." >&2
exit 1
fi
mkdir -p "${PKG_DIR}"
download_pkg() {
if command -v wget >/dev/null 2>&1; then
wget --no-cache -O "${PKG_PATH}" "${PKG_URL}"
else
curl -fsSL "${PKG_URL}" -o "${PKG_PATH}"
fi
}
verify_md5() {
if command -v md5sum >/dev/null 2>&1; then
echo "${PKG_MD5} ${PKG_PATH}" | md5sum -c -
else
[[ "$(md5 -q "${PKG_PATH}")" == "${PKG_MD5}" ]]
fi
}
if [[ ! -f "${PKG_PATH}" ]]; then
download_pkg
fi
if ! verify_md5; then
rm -f "${PKG_PATH}"
download_pkg
verify_md5
fi
"${UPGRADEPKG}" --install-new "${PKG_PATH}"
if ! ls -1 /var/log/packages 2>/dev/null | grep -q "^${PKG_NAME}"; then
echo "Package registration missing after install; retrying with --reinstall." >&2
"${UPGRADEPKG}" --install-new --reinstall "${PKG_PATH}"
fi
if ! ls -1 /var/log/packages 2>/dev/null | grep -q "^${PKG_NAME}"; then
echo "ERROR: ${PKG_NAME} is still missing from /var/log/packages after install." >&2
exit 1
fi
if [ -x /usr/local/emhttp/plugins/zfs.autosnapshot/scripts/repair-permissions.sh ]; then
/usr/local/emhttp/plugins/zfs.autosnapshot/scripts/repair-permissions.sh || true
fi
if [ -x /usr/local/emhttp/plugins/zfs.autosnapshot/scripts/sync-cron.sh ]; then
/usr/local/emhttp/plugins/zfs.autosnapshot/scripts/sync-cron.sh || true
fi
]]>
/dev/null 2>&1 || true
# Fallback cleanup for installs that missed package DB registration.
rm -f /usr/local/sbin/zfs_autosnapshot
rm -rf /usr/local/emhttp/plugins/zfs.autosnapshot
rm -f /boot/config/plugins/zfs.autosnapshot/zfs-autosnapshot-*-noarch-1.txz
rm -f /boot/config/plugins/zfs.autosnapshot/zfs-autosnapshot-*-noarch-1.txz.md5
rmdir /boot/config/plugins/zfs.autosnapshot 2>/dev/null || true
]]>