diff options
author | Mohit Mehta <mohit.mehta@vyatta.com> | 2008-10-10 22:27:30 -0700 |
---|---|---|
committer | Mohit Mehta <mohit.mehta@vyatta.com> | 2008-10-10 22:27:30 -0700 |
commit | 0a60c68af7028fe58c3ece088c85fd3a04eb9a1f (patch) | |
tree | d6189083c3ea5814e208dffa20d381f2917ca4af /templates/system/syslog | |
parent | 499afdae260c9ac3f179f3fc204308eb2d57b796 (diff) | |
download | vyatta-cfg-quagga-0a60c68af7028fe58c3ece088c85fd3a04eb9a1f.tar.gz vyatta-cfg-quagga-0a60c68af7028fe58c3ece088c85fd3a04eb9a1f.zip |
Fix Bug 3751 configuring multiple global syslog facilities overwrites previous ones in /etc/syslog.conf
- multiple nodes configured under 'system syslog global' are appended to syslog.conf
- default '*.notice -/var/log/messages' is removed from syslog.conf if any
node is configured under 'system syslog global' and is put back when nothing
configured under 'system syslog global'
- syslog process only restarted once after making all changes in config
- added commit checks at 'system syslog <>' level nodes to specify facility
Diffstat (limited to 'templates/system/syslog')
-rw-r--r-- | templates/system/syslog/console/node.def | 1 | ||||
-rw-r--r-- | templates/system/syslog/file/node.def | 2 | ||||
-rw-r--r-- | templates/system/syslog/global/facility/node.def | 6 | ||||
-rw-r--r-- | templates/system/syslog/global/node.def | 1 | ||||
-rw-r--r-- | templates/system/syslog/host/node.def | 1 | ||||
-rw-r--r-- | templates/system/syslog/node.def | 14 | ||||
-rw-r--r-- | templates/system/syslog/user/node.def | 1 |
7 files changed, 19 insertions, 7 deletions
diff --git a/templates/system/syslog/console/node.def b/templates/system/syslog/console/node.def index ec620885..7252ad79 100644 --- a/templates/system/syslog/console/node.def +++ b/templates/system/syslog/console/node.def @@ -1 +1,2 @@ help: Set console logging +commit:expression: $VAR(./facility/@@) != ""; "Atleast one facility must be configured to log messages to $VAR(.)" diff --git a/templates/system/syslog/file/node.def b/templates/system/syslog/file/node.def index e2c7759f..a1ac1c4d 100644 --- a/templates/system/syslog/file/node.def +++ b/templates/system/syslog/file/node.def @@ -2,4 +2,4 @@ tag: type: txt help: Set the name of syslog file to save log messages to syntax:expression: pattern $VAR(@) "^[-a-zA-Z0-9_.]+$" ; "invalid file name $VAR(@)" -commit:expression: $VAR(./facility/) != "" || $VAR(./archive/) != ""; "Must specify either facility or archive for syslog file" +commit:expression: $VAR(./@/facility/@@) != ""; "Atleast one facility must be configured to log messages to file $VAR(./@)" diff --git a/templates/system/syslog/global/facility/node.def b/templates/system/syslog/global/facility/node.def index cff98650..8133aebf 100644 --- a/templates/system/syslog/global/facility/node.def +++ b/templates/system/syslog/global/facility/node.def @@ -4,12 +4,12 @@ help: Set facility for system logging syntax:expression: $VAR(@) in "auth", "authpriv", "cron", "daemon", "kern", "lpr", "mail", "mark", "news", "security", "syslog", "user", "uucp", "local0", "local1", "local2", "local3", "local4", "local5", "local6", "local7", "all"; "\"$VAR(@)\" is not a valid logging facility" update:expression: "sudo sh -c \"LVL=`echo -n $VAR(level/@) | tr '[a-z]' '[A-Z]'` && \ FAC='$VAR(@)' ; if [ x\\$FAC == xall ]; then FAC='*'; fi && \ -/opt/vyatta/sbin/vyatta_update_syslog.pl '' '\\/var\\/log\\/messages' \ - \\\"\\$FAC.\\$LVL\t/var/log/messages \n\\\"\" " +/opt/vyatta/sbin/vyatta_update_syslog.pl \\\"\\$FAC\\.\\\" '\\/var\\/log\\/messages' \ + \\\"\\$FAC.\\$LVL\t-/var/log/messages \n\\\"\" " delete:expression: "sudo sh -c \"FAC='$VAR(@)' ; \ if [ x\\$FAC == xall ]; then FAC='*'; fi && \ /opt/vyatta/sbin/vyatta_update_syslog.pl \ - '' '\\/var\\/log\\/messages' '*.warning\t/var/log/messages \n'\" " + \\\"\\$FAC\\.\\\" '\\/var\\/log\\/messages' ''\" " comp_help:Available logging facilities: all All facilities excluding "mark" auth Authentication and authorization diff --git a/templates/system/syslog/global/node.def b/templates/system/syslog/global/node.def index 175d85e1..e5c441a8 100644 --- a/templates/system/syslog/global/node.def +++ b/templates/system/syslog/global/node.def @@ -1 +1,2 @@ help: Set system logging +commit:expression: $VAR(./facility/) != "" || $VAR(./archive/) != ""; "Must specify either facility or archive for syslog file" diff --git a/templates/system/syslog/host/node.def b/templates/system/syslog/host/node.def index 0e757cbc..255fc37b 100644 --- a/templates/system/syslog/host/node.def +++ b/templates/system/syslog/host/node.def @@ -1,3 +1,4 @@ tag: type: txt help: Set IP address or hostname of remote syslog server +commit:expression: $VAR(./@/facility/@@) != ""; "Atleast one facility must be configured to log messages to host $VAR(./@)" diff --git a/templates/system/syslog/node.def b/templates/system/syslog/node.def index 72a82d78..7fd911f7 100644 --- a/templates/system/syslog/node.def +++ b/templates/system/syslog/node.def @@ -1,3 +1,11 @@ -help: Set syslog daemon -delete:expression: "sudo sh -c \"/opt/vyatta/sbin/vyatta_update_syslog.pl \ -'' '\\/var\\/log\\/messages' '*.warning\t/var/log/messages \n'\" " +help: Configure syslog daemon +end: if [ -n "$VAR(./global/facility/@@)" ]; then + # remove the default config for global messages + sudo sh -c "sed -i '/\*\.notice[[:space:]]*-\/var\/log\/messages/d' /etc/syslog.conf" + else + # if not already there then write the default config for global messages + if ! grep -q "\*\.notice[[:space:]]*-/var/log/messages" /etc/syslog.conf; then + sudo sh -c "echo \"*.notice -/var/log/messages\" >> /etc/syslog.conf" + fi + fi + sudo /usr/sbin/invoke-rc.d sysklogd restart diff --git a/templates/system/syslog/user/node.def b/templates/system/syslog/user/node.def index a432f326..eabd7f8f 100644 --- a/templates/system/syslog/user/node.def +++ b/templates/system/syslog/user/node.def @@ -1,5 +1,6 @@ tag: type: txt help: Set logging to specific user's terminal +commit:expression: $VAR(./@/facility/@@) != ""; "Atleast one facility must be configured to log messages to user $VAR(./@)" comp_help: Possible completions: <username> Send log messages to this user's terminal |