]> ###2024.02.14 - update to 0.21.2 ###2020.04.13 - update to 0.20.0 ###2019.08.17 - Initial version - 0.19.1 ZnapZend for unRAID6 zfs backup with remote capabilities and mbuffer integration. http://www.znapzend.org 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 mP+LK0nEAgTYvmcvo26fyQcN28lOxFDlM6qKtYaKslJKiosQzaiuqaW8sgrnPSLC55TQeVrnZDHz mss4rldXImsbtnPpnfexbdfHBIHBGMPfb/gxvfI7EqnbvJ2Lb7uXvS1JInlZCR7+5ZUUdu5AZG3D Nr5381/w3hOGno5tW/HA5Cvold+ByDtrNzCu4gH2NLUQWAMIn1JVrDVUlJVSUlyEaMYLS1dSXlmF VwURhH1UwQi0pEMGFhYw4bxvE7OWyqf/wVur15EVD1CFtHMcU9CZay46A2st0598mcXvryM7HiPS nEoz5OgeXHX+MELnqHh0IavqNxOzFhFoSYWccFQPyr57GmnnmP7UKyyrqycrFuAVRPiEkqGKMUJF WSlnDuqHeO914TurKJ9eRdo5jBgQPqOqiAjp0BFYg4iQDh2xwAIKCKpK6Dwxa0CEZDokKxbgVYkY EVrSIYlYAKqknSewBhEBFBDSoSMWWFSV0HligUVVERE+o+DVE4tZKq68mNOP64toxjtrNzJ+2lz2 NDUTswav/AsjglclYkTwquzPiOBViRgRvCr7MyJ4VSJGBK/K/owIXpWIEcGr8mVGIO08bXKymTFx NAN7dUWcc5p2ngl/fJDnlqygdW42RoTDkVdlT2MzZx/fn8qfXUJgDeK9VxFhw9ad3DD3cVaub6A5 lUIVEA4PCiKQHY/Tr3s+N4++kG6d2qGqiO6DiKCqLK+rZ/uevXhVRDgsqIIRoUPrPAYUFiAiqCoi gmgGGapKREQ4nKkqEREh8n/80SG09T7rVQAAAABJRU5ErkJggiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA= znapzend_pkg="unRAID6-ZnapZend.0.21.2.x86_64.tgz" if ! [ -x "$(command -v perl)" ]; then echo 'perl is not installed.... installing' wget https://mirrors.slackware.com/slackware/slackware64-current/slackware64/d/$(wget -O- https://mirrors.slackware.com/slackware/slackware64-current/slackware64/d/ | egrep -o 'perl-.*x86_64.*.txz' | sort -V | head -1 | cut -d "\"" -f1) -O /tmp/perl.txz installpkg /tmp/perl.txz rm /tmp/perl.txz fi download_install() { local dest="&plugin;/packages/${1}" local src="&repo;/packages/${1}" mkdir -p "&plugin;/packages" if [ ! -f "${dest}" ]; then curl --location --silent --fail "${src}" --output "${dest}" fi if [ ! -f "${dest}.md5" ]; then curl --location --silent --fail "${src}.md5" --output "${dest}.md5" fi orig_md5=$(/usr/bin/cat $dest.md5) file_md5=$(/usr/bin/md5sum ${dest}) if [ "${file_md5:0:32}" != "${orig_md5:0:32}" ]; then echo "Wrong '${1}' package md5 hash." rm "${dest}" exit 1 else /sbin/installpkg "$dest" #delte old tgz find "&plugin;/packages/"* ! -name *"$version"* -exec rm {} \; fi } #install script download_install "${znapzend_pkg}" #fix for the icon chmod 755 /usr/local/emhttp/plugins/unRAID6-ZnapZend/ rm /usr/local/bin/znapzend* for x in /opt/znapzend-0.*/bin/*; do ln -sf $x /usr/local/bin; done FILE=/boot/config/plugins/unRAID6-ZnapZend/auto_boot_on if [ -f "$FILE" ]; then service="znapzend" if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 )) then echo "$SERVICE is running" else echo "Starting daemon" znapzend --logto=/var/log/znapzend.log --daemonize fi else echo "" echo "" echo run command "\"touch /boot/config/plugins/unRAID6-ZnapZend/auto_boot_on\"" for automatic start of daemon - see https://github.com/oetiker/znapzend echo "" echo "" fi echo "+==============================================================================" echo "| Uninstalling ZnapZend" echo "+==============================================================================" # Remove plugin related files rm -rf /usr/local/emhttp/plugins/&name; rm -rf &plugin;/packages echo "" echo "ZnapZend plugin uninstalled - will be removed on next boot"