#!/bin/sh
#
-# Copyright (C) 2007 Dinko Korunic, CARNet, Grupa za izradu paketa
+# Copyright (C) 2007 Dinko Korunic, CARNET, Grupa za izradu paketa
#
# This program 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.
-MONIT_DIR=/etc/monit.d
+MONIT_DIR=/etc/monit/conf.d
TEMPLATES_DIR=/usr/share/monit-cn
+
check_service() {
RET=0
-
filename="$1"
+
if [ ! -r "$filename" ]; then
RET=1
return 1
return 0
}
+check_template() {
+ RET=0
+ filename="$1"
+ serviceconf=$(basename $i)
+
+ if [ ! -r "$1" ]; then
+ RET=1
+ return 1
+ fi
+
+ if [ ! -r "${TEMPLATES_DIR}/${serviceconf}" ]; then
+ RET=0
+ return 0
+ fi
+
+ if ! grep -q "^#.*monit-cn template" "$filename"; then
+ RET=0
+ return 0
+ fi
+
+ if ! cmp -s "$filename" "${TEMPLATES_DIR}/${serviceconf}"; then
+ RET=1
+ return 1
+ fi
+
+ return $RET
+}
+
+
#####################################################################
changed=0
fi
for i in $(find "$MONIT_DIR" -name '*.conf'); do
+ check_template $i
+ if [ ! $RET -eq 0 ]; then
+ serviceconf=$(basename $i)
+ echo "CN: Restored default $serviceconf template"
+ cp -a "${TEMPLATES_DIR}/${serviceconf}" "$MONIT_DIR"
+ changed=1
+ fi
+done
+
+for i in $(find "$MONIT_DIR" -name '*.conf'); do
check_service $i
if [ ! $RET -eq 0 ]; then
serviceconf=$(basename $i)
for i in $(find "$TEMPLATES_DIR" -name '*.conf'); do
serviceconf=$(basename $i)
- if [ -r "$MONIT_DIR"/$serviceconf.disabled ]; then
- check_service "$MONIT_DIR"/$serviceconf.disabled
+ if [ -r "${MONIT_DIR}/${serviceconf}.disabled" ]; then
+ check_service "${MONIT_DIR}/${serviceconf}.disabled"
if [ $RET -eq 0 ]; then
- if [ ! -r "$MONIT_DIR"/$serviceconf ]; then
+ if [ ! -r "${MONIT_DIR}/${serviceconf}" ]; then
echo "CN: Enabled $serviceconf (previously disabled)"
- mv "$MONIT_DIR"/$serviceconf.disabled \
- "$MONIT_DIR"/$serviceconf
+ mv "${MONIT_DIR}/${serviceconf}.disabled" \
+ "${MONIT_DIR}/${serviceconf}"
changed=1
fi
fi
else
check_service $i
if [ $RET -eq 0 ]; then
- if [ ! -r "$MONIT_DIR"/$serviceconf ]; then
+ if [ ! -r "${MONIT_DIR}/${serviceconf}" ]; then
echo "CN: Enabled $serviceconf (new service)"
- cp -a $i "$MONIT_DIR"
+ cp -a $i "${MONIT_DIR}"
changed=1
fi
fi
if [ $changed -eq 1 ]; then
echo "CN: Stopping/restarting monit service"
- pkill -9 -f /usr/sbin/monit || true
+ #pkill -9 -f /usr/bin/monit || true
+ service monit restart
else
echo "CN: No new services detected, sorry"
fi
exit 0
+
+# vi:ft=sh