#!/bin/sh # postinst script for monit-cn # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package # case "$1" in configure|reconfigure) # continue below ;; *) exit 0 ;; esac # import CN-functions . /usr/share/carnet-tools/functions.sh # check if monitrc is an empty template installfile=1 if [ -e /etc/monit/monitrc ]; then lines=$(grep -v '^#' /etc/monit/monitrc | wc -l) if [ $lines -lt 4 ]; then installfile=1 mv -f /etc/monit/monitrc /etc/monit/monitrc.dpkg-old else installfile=0 fi fi if [ $installfile -eq 1 ]; then echo "CN: Installing default monitrc in /etc/monit/monitrc" cp -a /usr/share/monit-cn/monitrc /etc/monit/monitrc chmod u=rw,go= /etc/monit/monitrc fi # sed monitrc with proper hostname if grep -q '@localhost' /etc/monit/monitrc; then CARNET_HOSTNAME=`hostname` CARNET_DOMAINNAME=`hostname --domain` cp_check_and_sed '@localhost' \ "s/@localhost/@$CARNET_HOSTNAME.$CARNET_DOMAINNAME/g" \ /etc/monit/monitrc || true fi # fix "but not on { changed } bug in monitrc cp_check_and_sed '^set alert [^[:space:]]*@[^[:space:]]* (but )?not on { changed }$' \ 's/^set alert \([^[:space:]]*@[^[:space:]]*\) .*$/set alert \1 only on { uid, gid, size, nonexist, data, icmp, instance, invalid, exec, timeout, resource, checksum, match, timestamp, connection, permission }/g' \ /etc/monit/monitrc || true # if alert for "changed" is enabled, disable it ASAP # we're waiting for "but not on { changed }" to enter in official # package... cp_check_and_sed '^set alert [^[:space:]]*@[^[:space:]]*$' \ 's/^set alert \([^[:space:]]*@[^[:space:]]*\)$/set alert \1 only on { uid, gid, size, nonexist, data, icmp, instance, invalid, exec, timeout, resource, checksum, match, timestamp, connection, permission }/g' \ /etc/monit/monitrc || true # (re)generate monit.d files update-monit.d || true # disable monit startup cp_check_and_sed '^startup[[:space:]]*=[[:space:]]*1' \ 's/^startup[[:space:]]*=.*/startup=0/g' /etc/default/monit || true # systemv part if ! grep -q 'CARNet package monit-cn' /etc/init.d/monit; then echo "CN: Disabling monit SystemV script" if [ -x "/etc/init.d/monit" ]; then update-rc.d -f monit remove >/dev/null 2>&1 if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then invoke-rc.d monit stop || true else /etc/init.d/monit stop || true fi fi if [ -e "/etc/init.d/monit" ]; then # shebang head -n1 /etc/init.d/monit > /etc/init.d/monit.$$ # middle part cp-update monit-cn /etc/init.d/monit.$$ <> /etc/init.d/monit.$$ mv -f /etc/init.d/monit.$$ /etc/init.d/monit chmod +x /etc/init.d/monit fi fi # install as inittab service if ! grep -q '/usr/sbin/monit' /etc/inittab; then echo "CN: Installing monit service in /etc/inittab" cp -a /etc/inittab /etc/inittab.$$ cp-update monit-cn /etc/inittab.$$ <