Requests for an option "nmbd log file" and -l (log file), possible log filename bug, and minor nitpicking

Eric Maryniak e.maryniak at pobox.com
Tue Oct 17 14:33:23 GMT 2000


Dear readers,

I read that I should post/discuss requests for enhancements for which one
is unable to provide a fix (as diff -u), so here goes... please excuse my
ignorance about Samba or proper etiquette on this list --- I'm new!
By the way: I'm a happy user of Samba and have introduced it with success
at my current employer (and the previous two).
This great software seems to keep swinging ;-)

===
While playing with the log file options and smbd/nmbd -l, I noticed
a couple of things (Samba version 2.0.5a on SuSE Linux 6.3 i386,
kernel 2.2.13).
Nothing serious and some of them are nitpicking :)

1/4. Feature request: "nmbd log file" (and perhaps: "smbd log file").

I have a feature request for a new (or actually two) options
in the smb.conf:

    nmbd log file  = /var/log/samba.nmb.%m.log

which allows you to overrule the default log file location of nmbd
(note that %m is used).
For orthogonality another option could be added as well:

    smbd log file  = /var/log/samba.smb.%m.log

which would be synonymous to the already existing:

         log file  = /var/log/samba.smb.%m.log

In order not to break older smb.conf's, "log file" should be kept,
but become synonymous with "smbd log file" (or the other way around :)

2/4. Feature request: '-l' option of nmbd does not append '.nmb' cq.
     uses the "nmbd log file" setting (see feature request 1).

When I specifically set the log file for nmbd during startup, like:

    /usr/sbin/nmbd -D -l /var/log/samba.nmb.log

the actual filename becomes: /var/log/samba.nmb.log.nmb
This is documented behaviour in 'man nmbd'.

This appending is somewhat problematic if you like your log files
to end in '*.log' (and have a default action for double-clicking in
Windows on a '.log' file to open it in ones favorite editor ;-)
I realize I could hack the source, but wonder if this behaviour
could be altered (without breaking old software and configs).
I see three possibilities:

    a. Honor the new option "nmbd log file" :)
    b. Introduce another flag (-L, for "hard" logfile name),
       while keeping the existing -l with it's original behaviour
    c. Scan a filename (given with -l) for the pattern (\.nmb)|(nmb\.)
       and if so, automagically do _not_ append ".nmb" to the base name.

3/4. Possible bug determining log file name of smbd.

When I call smbd -D, /without/ -l, but /with/ a "log file" option
in smb.conf (like:  log file = /var/log/samba.smb.%m.log),
the smb daemon will still create a file "log.smb", albeit with only
one log entry, like:

  [2000/03/14 15:13:22, 1] smbd/server.c:main(628)
    smbd version 2.0.5a started.
    Copyright Andrew Tridgell 1992-1998

This file does not grow anymore and all subsequent logging goes to
samba.smb.smb.log as expected (apparently "%m" is replaced with "smb"
for the server itself) and samba.smb.PcNetBIOSname.log for each PC.
It seems like smbd already opens a log file, prior to processing
smb.conf (where the logfile is redefined)? Only giving the log
file with '-l' seems to be able to overrule log.smb.

Site note 1:
  Instead of "smb" for the server itself (for %m), I would have
  simply expected the (netbios or dns/gethostname()) name of the
  server (being in this case sort of a client of itself).
Site note 2:
  Andrew has no copyright any longer? ;-) (should be 1992-2000?!)
Site note 3:
  The date format of the log entries seems to be in ISO 8601 format
  (CCYY-MM-DD HH:MM:SS, ref: http://www.cl.cam.ac.uk/~mgk25/iso-time.html )
  The separator, "/", however is not correct. It should be "-", like:

[2000-03-14 15:13:36, 1] smbd/service.c:make_connection(521)
  ...

  And perhaps add the tz in official iso parlance if you don't live in
  Greenwich, which makes your log files really self-contained:

[2000-03-14 15:13:36 +01:00, 1] smbd/service.c:make_connection(521)
  ...

4/4. Feature request: %D (ISO 8601 date and time) alternative for %T
     OR (better?) augmented snprintf()-aware %{%...}T 

While on ISO 8601 date issue, a new date variable, say %D, would be
very handy (expanding to CCYYMMDD): 

    nmbd log file  = /var/log/samba.nmb.%D.log
    smbd log file  = /var/log/samba.smb.%D.log

resulting in log files like:

    /var/log/samba.nmb.20000401.log
    /var/log/samba.nmb.20000430.log
    ...
    /var/log/samba.smb.20000401.log
    /var/log/samba.smb.20000430.log

this would make log file rotation a breeze, enabling you to use
shell scripts with  ` date '+%Y%m%d' ` to loop over them.

**** OR (better?!):

A truly cool feature, and perhaps better because more generic,
would be to augment %T with snprintf() functionality, like used in
proftpd (www.proftpd.net) for LogFormat:

    nmbd log file  = /var/log/samba.nmb.%{%Y-%m-%d}T.log
    smbd log file  = /var/log/samba.smb.%{%Y-%m-%d}T.log

resulting in log files like:

    /var/log/samba.nmb.2000-04-01.log
    /var/log/samba.nmb.2000-04-30.log
    ...
    /var/log/samba.smb.2000-04-01.log
    /var/log/samba.smb.2000-04-30.log


Thanx for a very fine and stable product, 

Bye-bye, Eric
-- 
Eric Maryniak <e.maryniak at pobox.com>
Home page: http://pobox.com/~e.maryniak/
University of Amsterdam, Department of Psychology.
Tel/Fax: +31 20 5256853/6391656. Internet: http://www.neuromod.org/

To be is to do.
                  - I. Kant
To do is to be.
                  - J.P. Sartre
Yabba-Dabba-Doo!
                  - F. Flintstone






More information about the samba mailing list