From 417615d96d52b8e011d5efbdff69f7216a53e194 Mon Sep 17 00:00:00 2001 From: Herton Ronaldo Krzesinski Date: Thu, 4 Aug 2005 18:26:13 +0000 Subject: - Fix usage bug: add-syslog and del-syslog can also accept only one parameter, the unix stream log source. - Shell script must exit with 'exit' command, not 'return'. - Before using service command we must check if the initscript exist. - Fixed sed expression for adding a syslog source to syslog-ng inside the same source of /dev/log. - Removed duplicated comment. - We must check level if empty in del-syslog, in the case we're using only source argument, otherwise we get various grep usage erros. --- add-syslog | 11 ++++++----- del-syslog | 45 ++++++++++++++++++++++++--------------------- 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/add-syslog b/add-syslog index 9f1a7e1..d1d0918 100755 --- a/add-syslog +++ b/add-syslog @@ -12,7 +12,7 @@ # syslog (supported sysklogd and syslog-ng). #--------------------------------------------------------------- -if [ $# -lt 6 ]; then +if [ $# -lt 3 ]; then echo "usage: $0 " 1>&2 exit 1 fi @@ -74,7 +74,7 @@ logfile=$7 # log file, like /var/log/messages # Don't readd entry on package updates if [ "$num" -ne 1 ]; then - return 0 + exit 0 fi # just ignore if it's default unix domain socket @@ -163,6 +163,7 @@ if [ -f /etc/syslog.conf ]; then echo -e "$facility.=$level_begin\t\t\t\t\t\t\t$logfile" >> /etc/syslog.conf fi fi + [ -f "/etc/rc.d/init.d/syslog" ] && service syslog condrestart fi # syslog-ng handler @@ -222,13 +223,13 @@ if [ -f /etc/syslog-ng.conf ]; then fi fi elif [ -n "$source" ]; then - from=`echo $config | sed -n "s:\(.*source[[:space:]]\+\)\([[:alnum:]]\+\)\(.*/dev/log.*\):\2:p"` if [ -n "$from" ]; then - sed -i -e :a -e \ - "s:\(source[[:space:]]\+$from[[:space:]]*{[^}]*\)\(}[[:space:]]*\);:\1 unix-stream (\"$source\"); };:g;/source/N;//ba" \ + sed -i \ + "/source/{ :a /}/! { N; ba }; s:\(source[[:space:]]*$from[[:space:]]*{.*\)\([[:space:]]\+}[[:space:]]*;\):\1 unix-stream (\"$source\"); };: }" \ /etc/syslog-ng.conf fi fi + [ -f "/etc/rc.d/init.d/syslog-ng" ] && service syslog-ng condrestart fi exit 0 diff --git a/del-syslog b/del-syslog index 4e67c85..441a8f2 100755 --- a/del-syslog +++ b/del-syslog @@ -18,7 +18,7 @@ # syslog (supported sysklogd and syslog-ng). #--------------------------------------------------------------- -if [ $# -lt 6 ]; then +if [ $# -lt 3 ]; then echo "usage: $0 " 1>&2 exit 1 fi @@ -140,7 +140,7 @@ logfile=$7 # log file, like /var/log/messages # Don't remove entry on package updates if [ "$num" -ne 0 ]; then - return 0 + exit 0 fi # Just ignore if it's default unix domain socket @@ -194,13 +194,10 @@ if [ -f /etc/syslog.conf ]; then [ -n "$LNUM" ] && sed -i "$LNUM" /etc/syslog.conf || : done fi + [ -f "/etc/rc.d/init.d/syslog" ] && service syslog condrestart fi # syslog-ng handler -# Thanks for Aurélio Marinho Jargas for helping me out with sed -# expressions, my first expressions were very slow to execute, parsing -# block oriented config files isn't very simple with line oriented tools -# like grep or sed if [ -f /etc/syslog-ng.conf ]; then # First, make sure each directive is placed at each line, # eg.: if we have to log directives on the same line (like @@ -218,23 +215,27 @@ if [ -f /etc/syslog-ng.conf ]; then else from=`echo $config | sed -n "s:\(.*source[[:space:]]\+\)\([[:alnum:]]\+\)\(.*/dev/log.*\):\2:p"` fi - + for level in $priority_order; do - if echo $level | grep -q $level_begin; then - lvl=`echo $level | sed "s:,: :"` - c=0 - for depr in $lvl; do - lvl_start[$c]=$depr - let c=c+1 - done + if [ -n "$level_begin" ]; then + if echo $level | grep -q $level_begin; then + lvl=`echo $level | sed "s:,: :"` + c=0 + for depr in $lvl; do + lvl_start[$c]=$depr + let c=c+1 + done + fi fi - if echo $level | grep -q $level_end; then - lvl=`echo $level | sed "s:,: :"` - c=0 - for depr in $lvl; do - lvl_end[$c]=$depr - let c=c+1 - done + if [ -n "$level_end" ]; then + if echo $level | grep -q $level_end; then + lvl=`echo $level | sed "s:,: :"` + c=0 + for depr in $lvl; do + lvl_end[$c]=$depr + let c=c+1 + done + fi fi done @@ -300,4 +301,6 @@ if [ -f /etc/syslog-ng.conf ]; then let i=i+1 done fi + + [ -f "/etc/rc.d/init.d/syslog-ng" ] && service syslog-ng condrestart fi -- cgit v1.2.1