#!/bin/sh #------------------------------------------------------------------------------ # /var/install/bin/update-syslog - update syslog configuration files # # Creation: 2008-11-04 jv # Last Update: $Id$ # # Copyright (c) 2001-2010 the eisfair team, team(at)eisfair(dot)org # # 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. #------------------------------------------------------------------------------ PATH=/sbin:/bin:/usr/sbin:/usr/bin #------------------------------------------------------------------------------ # print file header # $1 - file name #------------------------------------------------------------------------------ print_file_header () { local f_name="$1" cat <<-EOF #---------------------------------------------------------------------- # ${f_name} file generated by Eisfair-config # Creation date: `date '+%Y-%m-%d'` `whoami` # Do not edit this file directly! #---------------------------------------------------------------------- EOF } #------------------------------------------------------------------------------ # create syslog-ng.conf file #------------------------------------------------------------------------------ grep_syslog_conf_entries () { local section="$1" FN grep -v '^#' /etc/syslog-ng/syslog-ng-$section.std for FN in `ls /etc/syslog-ng/syslog-ng-$section.* | grep -Ev ".backup|.std|~"` do grep -v '^#' $FN done } create_syslog_conf_file () { local fname='/etc/syslog-ng/syslog-ng.conf' fname_tmp="`mktemp`" # check if exists default value files for ng_std in options source destination filter log do [ -f /etc/syslog-ng/syslog-ng-$ng_std.std ] || exit 1 done # backup file if exists [ -f "$fname" ] && /var/install/bin/backup-file -quiet "$fname" backup # create new file (temporary one) { # print header print_file_header "$fname" # create options entries echo "options {" grep_syslog_conf_entries options echo "};" # create source entries echo "source s_all {" grep_syslog_conf_entries source echo "};" # create destination entries grep_syslog_conf_entries destination # create filter entries grep_syslog_conf_entries filter # create log entries grep_syslog_conf_entries log } > $fname_tmp # copy file, preserve access permissions cp -p $fname_tmp $fname rm -f $fname_tmp } #------------------------------------------------------------------------------ # start, restart or reload the syslog-ng daemon #------------------------------------------------------------------------------ start_restart_reload_sylog () { local NAME="syslog-ng" local PIDFILE="/var/run/$NAME.pid" if [ -f $PIDFILE ] then if [ "`pgrep $NAME`" = `cat $PIDFILE` ] then /usr/sbin/invoke-rc.d $NAME reload 2>/dev/null else /usr/sbin/invoke-rc.d $NAME restart 2>/dev/null fi fi if [ `pgrep -c $NAME` -eq 0 ] then [ -f $PIDFILE ] && rm -f $PIDFILE /usr/sbin/invoke-rc.d $NAME start 2>/dev/null fi return 0 } #============================================================================== # main #============================================================================== create_syslog_conf_file [ -x /etc/init.d/syslog-ng ] && start_restart_reload_sylog || echo " * syslog disabled in base" exit 0 #============================================================================== # end #==============================================================================