-
Bug
-
Resolution: Won't Do
-
Major
-
None
-
rhel-9.2.0
-
None
-
Moderate
-
rhel-plumbers
-
ssg_core_services
-
3
-
False
-
False
-
-
None
-
None
-
None
-
None
-
If docs needed, set a value
-
-
Unspecified
-
None
-
57,005
This bug was initially created as a copy of Bug #205096
I am copying this bug because:
The testcase /CoreOS/logwatch/bz_tests fails for this part.
Looks like this is a regression from the previous release (it doesn't fail in RHEL8).
The current behaviour corresponds to what is described in man
--logdir directory
Look in directory for log subdirectories or log files first before looking in the default directories.
however, in RHEL8 and older, the real behaviour was not to search "default" directories if logdir was specified.
As this was the point of the previous fix, I believe the way to go here is to examine where the fix has gone, restore it, and to correct the manpage.
BTW, trying to test another problem, I had already hit this issue that I cannot simply tell logwatch which file to process but rather I have to ensure that the system logs contain what I need them to contain. This is really annoying and I vote with all my hands and legs to change logwatch behaviour to something more sane, to obey what the user wants it to do and do not try to apply some internal magic that cannot be bypassed.
-------
/etc/log.d/conf/logfiles/exim.conf has the logfile of /var/log/exim/main.log,
this should be exim/main.log.
/etc/log.d/conf/logfiles/pureftp.conf has the logfile of
/var/log/pureftp/syslog.log, this should be pureftp/syslog.log.
Below is the strace output showing what the logwatch scripts try to open.
/u3f2/log is where I am storing my logs. Log files that are under /var/log
should have relative paths. For the case of log files such as
/var/spool/autorpm/install.log the correct thing to do would be to not pre-pend
directories to absolute paths.
Finally /var/log and /var/adm should not be searched unconditionally. There
should be a config variable containing an array of directories to be searched in
order, "/var/log" would be the default for such an array, but the sys-admin
should be free to add others as necessary.
/root/str.29762:stat64("/u3f2/log//var/log/pureftp/syslog.log", 0x81ac0c8) = -1
ENOENT (No such file or directory)
/root/str.29762:stat64("/var/adm//var/log/pureftp/syslog.log", 0x81ac0c8) = -1
ENOENT (No such file or directory)
/root/str.29762:stat64("/var/log//var/log/pureftp/syslog.log", 0x81ac0c8) = -1
ENOENT (No such file or directory)
/root/str.29811:execve("/bin/sh", ["sh", "-c", "/bin/cat
/var/log/pureftp/syslog"...], [/* 28 vars */]) = 0
/root/str.29812:execve("/bin/cat", ["/bin/cat", "/var/log/pureftp/syslog.log"],
[/* 28 vars */]) = 0
/root/str.29812:open("/var/log/pureftp/syslog.log", O_RDONLY|O_LARGEFILE) = -1
ENOENT (No such file or directory)
/root/str.29812:write(2, "/var/log/pureftp/syslog.log", 27) = 27
- external trackers