|
Packit |
57988d |
#!/bin/sh
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
#The MIT License
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
#Copyright (c) 2005-2006 Mike Tremaine <mgt /at/ stellarcore.net>
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
#Permission is hereby granted, free of charge, to any person obtaining
|
|
Packit |
57988d |
#a copy of this software and associated documentation files (the "Software"),
|
|
Packit |
57988d |
#to deal in the Software without restriction, including without limitation
|
|
Packit |
57988d |
#the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
Packit |
57988d |
#and/or sell copies of the Software, and to permit persons to whom the
|
|
Packit |
57988d |
#Software is furnished to do so, subject to the following conditions:
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
#The above copyright notice and this permission notice shall be included
|
|
Packit |
57988d |
#in all copies or substantial portions of the Software.
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
Packit |
57988d |
#EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
Packit |
57988d |
#MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
Packit |
57988d |
#IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
Packit |
57988d |
#DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
Packit |
57988d |
#OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
|
Packit |
57988d |
#THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
Packit |
57988d |
# __________________________________________________________________
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
# File: install_logwatch.sh
|
|
Packit |
57988d |
# Author: Mike Tremaine [mgt /at/ stellarcore.net]
|
|
Packit |
57988d |
# Maintainer: Mike Tremaine [mgt /at/ stellarcore.net]
|
|
Packit |
57988d |
# $Id$
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
# $Log: install_logwatch.sh,v $
|
|
Packit |
57988d |
# Revision 1.20 2008/05/12 22:53:28 mike
|
|
Packit |
57988d |
# removed -T flag no sure why it was there -mgt
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
# Revision 1.19 2008/05/08 23:15:55 mike
|
|
Packit |
57988d |
# Added install to logwatch.cron if no cron.daily dir. -mgt
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
# Revision 1.18 2008/05/08 22:47:41 mike
|
|
Packit |
57988d |
# Added BIGGER note for the new cron requirement -mgt
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
# Revision 1.17 2007/11/28 16:06:56 mike
|
|
Packit |
57988d |
# Prefix option code from Craig Ruff -mgt
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
# Revision 1.16 2007/11/28 15:50:43 mike
|
|
Packit |
57988d |
# Typod Craig Ruff sorry -mgt
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
# Revision 1.15 2007/11/28 15:49:47 mike
|
|
Packit |
57988d |
# Patch from Craig Ruff for MANDIR under Solaris -mgt
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
# Revision 1.14 2007/11/28 15:43:14 mike
|
|
Packit |
57988d |
# Patch from Craig Ruff for CONFIGDIR munge -mgt
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
# __________________________________________________________________
|
|
Packit |
57988d |
#
|
|
Packit |
57988d |
#Note: This script is provided for the non-RPM installs.
|
|
Packit |
57988d |
#It is preferred that logwatch be packaged by a distribution
|
|
Packit |
57988d |
#specifically for your installation. But since that is not always
|
|
Packit |
57988d |
#possible we have included this script.
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#Add PATHS for various OS options
|
|
Packit |
57988d |
#Set PATH for solaris /usr/ucb/install
|
|
Packit |
57988d |
PATH=/usr/ucb:$PATH
|
|
Packit |
57988d |
#Set PATH for OpenBSD makewhatis /usr/libexec/makewhatis
|
|
Packit |
57988d |
PATH=$PATH:/usr/libexec
|
|
Packit |
57988d |
#Set PATH for IRIX makewhatis /usr/lib/makewhatis
|
|
Packit |
57988d |
PATH=$PATH:/usr/lib
|
|
Packit |
57988d |
export PATH
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#Set OS and GLOBIGNORE
|
|
Packit |
57988d |
OS=`uname -s`
|
|
Packit |
57988d |
GLOBIGNORE=*CVS
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#All these can be set via user input
|
|
Packit |
57988d |
#Defaults
|
|
Packit |
57988d |
BASEDIR="/usr/share/logwatch"
|
|
Packit |
57988d |
CONFIGDIR="/etc/logwatch"
|
|
Packit |
57988d |
TEMPDIR="/var/cache/logwatch"
|
|
Packit |
57988d |
PERLEXE="/usr/bin/perl"
|
|
Packit |
57988d |
MANDIR="/usr/share/man"
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#Command line options section
|
|
Packit |
57988d |
#Currently only prefix is supported but now that the door is open other options should follow. -mgt
|
|
Packit |
57988d |
ac_prev=
|
|
Packit |
57988d |
for ac_option
|
|
Packit |
57988d |
do
|
|
Packit |
57988d |
# If the previous option needs an argument, assign it.
|
|
Packit |
57988d |
if test -n "$ac_prev"; then
|
|
Packit |
57988d |
eval "$ac_prev=\$ac_option"
|
|
Packit |
57988d |
ac_prev=
|
|
Packit |
57988d |
continue
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
|
|
Packit |
57988d |
|
|
Packit |
57988d |
case $ac_option in
|
|
Packit |
57988d |
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
|
|
Packit |
57988d |
ac_prev=prefix ;;
|
|
Packit |
57988d |
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
|
|
Packit |
57988d |
prefix=$ac_optarg ;;
|
|
Packit |
57988d |
*)
|
|
Packit |
57988d |
echo "Unknown option '$ac_option'"
|
|
Packit |
57988d |
;;
|
|
Packit |
57988d |
esac
|
|
Packit |
57988d |
done
|
|
Packit |
57988d |
|
|
Packit |
57988d |
if [ "x$prefix" != "x" ]; then
|
|
Packit |
57988d |
BASEDIR=$prefix
|
|
Packit |
57988d |
munge_base=1
|
|
Packit |
57988d |
CONFIGDIR=$BASEDIR/etc
|
|
Packit |
57988d |
munge_conf=1
|
|
Packit |
57988d |
TEMPDIR=$BASEDIR/tmp
|
|
Packit |
57988d |
munge_temp=1
|
|
Packit |
57988d |
MANDIR=$BASEDIR/man
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#Talk to user
|
|
Packit |
57988d |
printf "#################################\n"
|
|
Packit |
57988d |
printf "Preparing to install Logwatch\n"
|
|
Packit |
57988d |
printf "Enter the path to the Logwatch BaseDir [$BASEDIR] : "
|
|
Packit |
57988d |
read base
|
|
Packit |
57988d |
|
|
Packit |
57988d |
if [ "$base" = "" ]; then
|
|
Packit |
57988d |
printf "### Using $BASEDIR\n"
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
BASEDIR="$base"
|
|
Packit |
57988d |
#Set munge flag
|
|
Packit |
57988d |
munge_base=1
|
|
Packit |
57988d |
printf "### Using $BASEDIR [will modify logwatch.pl]\n"
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
printf "Enter the path for the Logwatch ConfigDir [$CONFIGDIR] : "
|
|
Packit |
57988d |
read config
|
|
Packit |
57988d |
|
|
Packit |
57988d |
if [ "$config" = "" ]; then
|
|
Packit |
57988d |
printf "### Using $CONFIGDIR\n"
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
CONFIGDIR="$config"
|
|
Packit |
57988d |
munge_conf=1
|
|
Packit |
57988d |
printf "### Using $CONFIGDIR [will modify logwatch.pl]\n"
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
printf "Enter the dir name to be used for temp files [$TEMPDIR] : "
|
|
Packit |
57988d |
read temp
|
|
Packit |
57988d |
|
|
Packit |
57988d |
if [ "$temp" = "" ]; then
|
|
Packit |
57988d |
printf "### Using $TEMPDIR\n"
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
TEMPDIR="$temp"
|
|
Packit |
57988d |
munge_temp=1
|
|
Packit |
57988d |
printf "### Using $TEMPDIR [will write to $CONFIGDIR/conf/logwatch.conf]\n"
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
printf "Enter the location of perl [$PERLEXE] : "
|
|
Packit |
57988d |
read perlexe
|
|
Packit |
57988d |
|
|
Packit |
57988d |
if [ "$perlexe" = "" ]; then
|
|
Packit |
57988d |
printf "### Using $PERLEXE\n"
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
PERLEXE="$perlexe"
|
|
Packit |
57988d |
munge_perl=1
|
|
Packit |
57988d |
printf "### Using $PERLEXE [will modify logwatch.pl]\n"
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
printf "Enter the dir name to used for the manpage [$MANDIR] : "
|
|
Packit |
57988d |
read mandir
|
|
Packit |
57988d |
|
|
Packit |
57988d |
if [ "$mandir" = "" ]; then
|
|
Packit |
57988d |
printf "### Using $MANDIR\n"
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
MANDIR="$mandir"
|
|
Packit |
57988d |
printf "### Using $MANDIR [Will try to run makewhatis]\n"
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
echo "### Installing"
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#OS Tests for known issues
|
|
Packit |
57988d |
if [ $OS = "Darwin" ]; then
|
|
Packit |
57988d |
munge_gzcat=1
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#Install is borked under IRIX
|
|
Packit |
57988d |
#BASE
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/dist.conf
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/dist.conf/logfiles
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/dist.conf/services
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/default.conf
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/default.conf/logfiles
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/default.conf/services
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/default.conf/html
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/scripts
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/scripts/logfiles
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/scripts/services
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/scripts/shared
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/lib
|
|
Packit |
57988d |
install -m 0644 README $BASEDIR/README
|
|
Packit |
57988d |
install -m 0644 HOWTO-Customize-LogWatch $BASEDIR/HOWTO-Customize-LogWatch
|
|
Packit |
57988d |
install -m 0644 conf/*.conf $BASEDIR/default.conf
|
|
Packit |
57988d |
install -m 0644 conf/logfiles/* $BASEDIR/default.conf/logfiles
|
|
Packit |
57988d |
install -m 0644 conf/services/* $BASEDIR/default.conf/services
|
|
Packit |
57988d |
install -m 0644 conf/html/* $BASEDIR/default.conf/html
|
|
Packit |
57988d |
install -m 0755 scripts/logwatch.pl $BASEDIR/scripts/logwatch.pl
|
|
Packit |
57988d |
for i in scripts/logfiles/* ; do
|
|
Packit |
57988d |
if [ `ls $i | grep -v CVS | wc -l` -ne 0 ] ; then
|
|
Packit |
57988d |
install -m 0755 -d $BASEDIR/$i
|
|
Packit |
57988d |
install -m 0644 $i/* $BASEDIR/$i
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
done
|
|
Packit |
57988d |
install -m 0644 scripts/shared/* $BASEDIR/scripts/shared
|
|
Packit |
57988d |
install -m 0644 scripts/services/* $BASEDIR/scripts/services
|
|
Packit |
57988d |
install -m 0644 lib/* $BASEDIR/lib
|
|
Packit |
57988d |
|
|
Packit |
57988d |
if [ $munge_base ]; then
|
|
Packit |
57988d |
perl -pi -e "s%/usr/share/logwatch%$BASEDIR%" $BASEDIR/scripts/logwatch.pl
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#CONFIG
|
|
Packit |
57988d |
install -m 0755 -d $CONFIGDIR
|
|
Packit |
57988d |
install -m 0755 -d $CONFIGDIR/scripts
|
|
Packit |
57988d |
install -m 0755 -d $CONFIGDIR/scripts/services
|
|
Packit |
57988d |
install -m 0755 -d $CONFIGDIR/conf
|
|
Packit |
57988d |
install -m 0755 -d $CONFIGDIR/conf/logfiles
|
|
Packit |
57988d |
install -m 0755 -d $CONFIGDIR/conf/services
|
|
Packit |
57988d |
install -m 0755 -d $CONFIGDIR/conf/html
|
|
Packit |
57988d |
|
|
Packit |
57988d |
if [ $munge_conf ]; then
|
|
Packit |
57988d |
perl -pi -e "s%/etc/logwatch%$CONFIGDIR%" $BASEDIR/scripts/logwatch.pl
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
touch $CONFIGDIR/conf/logwatch.conf
|
|
Packit |
57988d |
touch $CONFIGDIR/conf/ignore.conf
|
|
Packit |
57988d |
touch $CONFIGDIR/conf/override.conf
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#TEMP
|
|
Packit |
57988d |
#Using sanity check incase someone uses /tmp.
|
|
Packit |
57988d |
#The install would destory the perms on /tmp
|
|
Packit |
57988d |
if [ ! -d $TEMPDIR ]; then
|
|
Packit |
57988d |
#Should this be 0700 -d $TEMPDIR ??
|
|
Packit |
57988d |
install -m 0755 -d $TEMPDIR
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#This can create duplicates need to grep first -mgt
|
|
Packit |
57988d |
if [ $munge_temp ]; then
|
|
Packit |
57988d |
echo "TmpDir = $TEMPDIR" >> $CONFIGDIR/conf/logwatch.conf
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#PERL
|
|
Packit |
57988d |
if [ $munge_perl ]; then
|
|
Packit |
57988d |
perl -pi -e "s%/usr/bin/perl%$PERLEXE%" $BASEDIR/scripts/logwatch.pl
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#Gzcat
|
|
Packit |
57988d |
if [ $munge_gzcat ]; then
|
|
Packit |
57988d |
echo "Pathtozcat = gzcat" >> $CONFIGDIR/conf/logwatch.conf
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#Search for makewhatis
|
|
Packit |
57988d |
for f in `echo $PATH | tr : ' '`; do
|
|
Packit |
57988d |
if [ -x "$f/makewhatis" ]; then
|
|
Packit |
57988d |
HAVE_MAKEWHATIS=1;
|
|
Packit |
57988d |
fi;
|
|
Packit |
57988d |
done
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#Man page
|
|
Packit |
57988d |
if [ -d $MANDIR/man5 ] && [ -d $MANDIR/man8 ] && [ -d $MANDIR/man1 ] && [ $HAVE_MAKEWHATIS ]; then
|
|
Packit |
57988d |
install -m 0644 logwatch.8 $MANDIR/man8
|
|
Packit |
57988d |
install -m 0644 logwatch.conf.5 $MANDIR/man5
|
|
Packit |
57988d |
install -m 0644 override.conf.5 $MANDIR/man5
|
|
Packit |
57988d |
install -m 0644 ignore.conf.5 $MANDIR/man5
|
|
Packit |
57988d |
install -m 0644 postfix-logwatch.1 $MANDIR/man1
|
|
Packit |
57988d |
install -m 0644 amavis-logwatch.1 $MANDIR/man1
|
|
Packit |
57988d |
#OpenBSD no -s
|
|
Packit |
57988d |
if [ $OS = "OpenBSD" ]; then
|
|
Packit |
57988d |
makewhatis -u $MANDIR/man5 $MANDIR/man8 $MANDIR/man1
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
#FreeBSD and NetBSD no -s no -u
|
|
Packit |
57988d |
if [ $OS = "FreeBSD" ] || [ $OS = "NetBSD" ]; then
|
|
Packit |
57988d |
makewhatis $MANDIR/man5 $MANDIR/man8 $MANDIR/man1
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
#MacOS X aka Darwin no -u [even thought the manpage says]
|
|
Packit |
57988d |
if [ $OS = "Darwin" ]; then
|
|
Packit |
57988d |
makewhatis -o "1 5 8" $MANDIR
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
#Linux
|
|
Packit |
57988d |
makewhatis -u -s "1 5 8" $MANDIR
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
if [ $OS = "SunOS" ]; then
|
|
Packit |
57988d |
#Go for the safe install rather then editing man.cf
|
|
Packit |
57988d |
mkdir -p $MANDIR/man1m > /dev/null 2>&1
|
|
Packit |
57988d |
install -m 0644 logwatch.8 $MANDIR/man1m
|
|
Packit |
57988d |
install -m 0644 logwatch.conf.5 $MANDIR/man1m
|
|
Packit |
57988d |
install -m 0644 override.conf.5 $MANDIR/man1m
|
|
Packit |
57988d |
install -m 0644 ignore.conf.5 $MANDIR/man1m
|
|
Packit |
57988d |
install -m 0644 postfix-logwatch.1 $MANDIR/man1
|
|
Packit |
57988d |
install -m 0644 amavis-logwatch.1 $MANDIR/man1
|
|
Packit |
57988d |
catman -w -M $MANDIR/man1m
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
install -m 0755 -d $MANDIR/man1
|
|
Packit |
57988d |
install -m 0644 postfix-logwatch.1 $MANDIR/man1
|
|
Packit |
57988d |
install -m 0644 amavis-logwatch.1 $MANDIR/man1
|
|
Packit |
57988d |
|
|
Packit |
57988d |
install -m 0755 -d $MANDIR/man5
|
|
Packit |
57988d |
install -m 0644 logwatch.conf.5 $MANDIR/man5
|
|
Packit |
57988d |
install -m 0644 override.conf.5 $MANDIR/man5
|
|
Packit |
57988d |
install -m 0644 ignore.conf.5 $MANDIR/man5
|
|
Packit |
57988d |
|
|
Packit |
57988d |
install -m 0755 -d $MANDIR/man8
|
|
Packit |
57988d |
install -m 0644 logwatch.8 $MANDIR/man8
|
|
Packit |
57988d |
|
|
Packit |
57988d |
printf "Installed manpages in $MANDIR/man1, $MANDIR/man5 and $MANDIR/man8.\n"
|
|
Packit |
57988d |
printf "Check your man.cf or man.conf to enable MANSECTS 1, 5 and 8\n"
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#Symlink
|
|
Packit |
57988d |
ln -f -s $BASEDIR/scripts/logwatch.pl /usr/sbin/logwatch
|
|
Packit |
57988d |
printf "Created symlink for /usr/sbin/logwatch \n"
|
|
Packit |
57988d |
|
|
Packit |
57988d |
#Cron
|
|
Packit |
57988d |
if [ -d /etc/cron.daily ]; then
|
|
Packit |
57988d |
rm -f /etc/cron.daily/0logwatch
|
|
Packit |
57988d |
install -m 0755 logwatch.cron /etc/cron.daily/0logwatch
|
|
Packit |
57988d |
printf "Created /etc/cron.daily/0logwatch \n"
|
|
Packit |
57988d |
else
|
|
Packit |
57988d |
install -m 0744 logwatch.cron $CONFIGDIR/logwatch.cron
|
|
Packit |
57988d |
printf "################ README ####################.\n"
|
|
Packit |
57988d |
printf "You need to setup your cron job for logwatch.\n"
|
|
Packit |
57988d |
printf "A sample script is included see $CONFIGDIR/logwatch.cron. \n"
|
|
Packit |
57988d |
printf "2 0 * * * $CONFIGDIR/logwatch.cron >/dev/null 2>&1 \n"
|
|
Packit |
57988d |
fi
|
|
Packit |
57988d |
|
|
Packit |
57988d |
exit
|
|
Packit |
57988d |
# vi: shiftwidth=3 tabstop=3 et
|