Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/nextcloudpi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornachoparker <nacho@ownyourbits.com>2018-11-05 03:40:25 +0300
committernachoparker <nacho@ownyourbits.com>2018-11-05 06:38:27 +0300
commit3cd1cd55e8c372a7e711000575bfca62fca711de (patch)
tree3fd9c71c7aa4ba5d16893a23cdc9679a7aabaec9
parent61381831c8aa9c184b9194b8751239cd7b85afbd (diff)
add nc-hdd-monitorv0.66.0
-rw-r--r--changelog.md4
-rw-r--r--etc/ncp-config.d/nc-hdd-monitor.sh88
-rwxr-xr-xupdate.sh1
3 files changed, 92 insertions, 1 deletions
diff --git a/changelog.md b/changelog.md
index be25162c..eb87eb91 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,7 @@
-[v0.65.0](https://github.com/nextcloud/nextcloudpi/commit/2f56f2c) (2018-11-03) add nc-test-hdd
+[v0.66.0](https://github.com/nextcloud/nextcloudpi/commit/989bc39) (2018-11-04) add nc-hdd-monitor
+
+[v0.65.0](https://github.com/nextcloud/nextcloudpi/commit/ab65f41) (2018-11-03) add nc-test-hdd
[v0.64.12](https://github.com/nextcloud/nextcloudpi/commit/5e7f3da) (2018-11-03) docker: fix provisioning on a stopped the container
diff --git a/etc/ncp-config.d/nc-hdd-monitor.sh b/etc/ncp-config.d/nc-hdd-monitor.sh
new file mode 100644
index 00000000..d6f2e60a
--- /dev/null
+++ b/etc/ncp-config.d/nc-hdd-monitor.sh
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+# Monitor HDD health automatically
+#
+# Copyleft 2018 by Ignacio Nunez Hernanz <nacho _a_t_ ownyourbits _d_o_t_ com>
+# GPL licensed (see end of file) * Use at your own risk!
+#
+# More at https://ownyourbits.com
+#
+
+ACTIVE_=no
+NOTIFYUSER_=ncp
+EMAIL_=optional@email.com
+
+DESCRIPTION="Monitor HDD health automatically"
+
+is_active()
+{
+ systemctl -q is-enabled smartd &>/dev/null
+}
+
+configure()
+{
+ local DRIVES=($(lsblk -ln | grep "^sd[[:alpha:]].*disk" | awk '{ print $1 }'))
+
+ [[ ${#DRIVES[@]} == 0 ]] && {
+ echo "no drives detected. Disabling.."
+ ACTIVE_=no
+ }
+
+ [[ "$ACTIVE_" != yes ]] && {
+ systemctl disable smartd
+ systemctl stop smartd
+ echo "HDD monitor disabled"
+ return 0
+ }
+
+ cat > /etc/smartd.conf <<EOF
+# short scan every day at 1am, long one on sundays at 2am
+DEVICESCAN -a -m $EMAIL_ -M exec /usr/local/etc/ncp-hdd-notif.sh -s (S/../.././01|L/../../7/02)
+EOF
+
+ cat > /usr/local/etc/ncp-hdd-notif.sh <<EOF
+#!/bin/bash
+EOF
+
+ [[ "$EMAIL_" != "" ]] && {
+ cat >> /usr/local/etc/ncp-hdd-notif.sh <<EOF
+sendmail "$EMAIL_" <<EOFMAIL
+Subject: Hard drive problems found
+
+"\$SMARTD_MESSAGE"
+EOFMAIL
+EOF
+ }
+
+ cat >> /usr/local/etc/ncp-hdd-notif.sh <<EOF
+wall "\$SMARTD_MESSAGE"
+sudo -u www-data php /var/www/nextcloud/occ notification:generate \
+ $NOTIFYUSER_ "NextCloudPi HDD health \$SMARTD_FAILTYPE" \
+ -l "\$SMARTD_MESSAGE"
+EOF
+chmod +x /usr/local/etc/ncp-hdd-notif.sh
+
+ for dr in "${DRIVES[@]}"; do smartctl --smart=on /dev/${dr} | sed 1,2d; done
+ systemctl enable smartd
+ systemctl start smartd
+ echo "HDD monitor enabled"
+}
+
+install() { :; }
+
+# License
+#
+# This script is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This script is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this script; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307 USA
diff --git a/update.sh b/update.sh
index 89d01269..e94d987a 100755
--- a/update.sh
+++ b/update.sh
@@ -26,6 +26,7 @@ UFW.sh
nc-snapshot.sh
nc-snapshot-auto.sh
nc-audit.sh
+nc-hdd-monitor.sh
SSH.sh
fail2ban.sh
NFS.sh