home | help
NEWSYSLOG(8)		     System Manager's Manual		    NEWSYSLOG(8)

NAME
     newsyslog -- maintain system log files to manageable sizes

SYNOPSIS
     newsyslog [-Fnrv] [-f config_file] [-a directory] [file ...]

DESCRIPTION
     Newsyslog	is  a  program	that  should be scheduled to run periodically by
     cron(8).  When it is executed it archives log files if necessary.	If a log
     file is determined to require archiving, newsyslog rearranges the files  so
     that  "logfile"  is  empty,  "logfile.0"  has the last period's logs in it,
     "logfile.1" has the next to last period's logs in it, and so on,  up  to  a
     user-specified  number  of archived logs.	Optionally the archived logs can
     be compressed to save space.

     A log can be archived for three reasons:

	   1.	It is larger than the configured size (in kilobytes).

	   2.	A configured number of hours have elapsed since the log was last
		archived.

	   3.	This is the specific configured hour for rotation of the log.

     The granularity of newsyslog is dependent on how often it is  scheduled  to
     run  by  cron(8).	 Since the program is quite fast, it may be scheduled to
     run every hour without any ill effects, and mode three (above) assumes that
     this is so.

     When starting up, newsyslog reads in  a  configuration  file  to  determine
     which  logs  may  potentially  be archived.  By default, this configuration
     file is /etc/newsyslog.conf.  Each line of the  file  contains  information
     about a particular log file that should be handled by newsyslog.  Each line
     has  five	mandatory fields and four optional fields, with whitespace sepa-
     rating each field.  Blank lines or lines beginning with ``#'' are	ignored.
     The fields of the configuration file are as follows:

     logfile_name
	     Name of the system log file to be archived.

     owner:group
	     This  optional  field specifies the owner and group for the archive
	     file.  The ":" is essential, even if the owner or	group  field  is
	     left  blank.   The field may be numeric, or a name which is present
	     in /etc/passwd or /etc/group.

     mode    Specify the mode of the log file and archives.

     count   Specify the number of archive files to be kept besides the log file
	     itself.

     size    When the size of the log file reaches size in  kilobytes,	the  log
	     file will be trimmed as described above.  If this field is replaced
	     by  an  asterisk  (`*'), then the size of the log file is not taken
	     into account when determining when to trim the log file.

     when    The when field can consist of an  interval,  a  specific  time,  or
	     both.  If the when field is an asterisk (`*') log rotation will de-
	     pend  only  on the contents of the size field.  Otherwise, the when
	     field consists of an optional interval in	hours,	optionally  fol-
	     lowed  by an `@'-sign and a time in a restricted ISO 8601 format or
	     by an `$'-sign and a time specification for logfile rotation  at  a
	     fixed time once per day, per week or per month.

	     If  a  time  is  specified,  the  log  file will only be trimmed if
	     newsyslog is run within one hour of the specified time.  If an  in-
	     terval  is  specified,  the  log  file will be trimmed if that many
	     hours have passed since the last rotation.  When both a time and an
	     interval are specified, both conditions must be satisfied	for  the
	     rotation to take place.

	     There  is	no  provision for specification of a timezone.	There is
	     little point in specifying an explicit minutes or seconds component
	     in the current implementation, since the only comparison is `within
	     the hour'.

	     ISO 8601 restricted time format

	     The lead-in  character  for  a  restricted  ISO  8601  time  is  an
	     `@'-sign.	The particular format of the time in restricted ISO 8601
	     is:  [[[[[cc]yy]mm]dd][T[hh[mm[ss]]]]].   Optional  date fields de-
	     fault to the appropriate component of the	current  date;	optional
	     time  fields  default  to	midnight;  hence if today is January 22,
	     1999, the following date specifications are all equivalent:

		   `19990122T000000'
		   `990122T000000'
		   `0122T000000'
		   `22T000000'
		   `T000000'
		   `T0000'
		   `T00'
		   `22T'
		   `T'
		   `'

	     Day, week and month time format

	     The lead-in character for day, week and month  specification  is  a
	     `$'-sign.	 The particular format of day, week and month specifica-
	     tion is: [Dhh], [Ww[Dhh]] and  [Mdd[Dhh]]	respectively.	Optional
	     time fields default to midnight.  The ranges for day and hour seci-
	     fications are:

		   hh	   hours, range 0 ... 23
		   w	   day of week, range 0 ... 6, 0 = Sunday
		   dd	   day of month, range 1 ... 31, or the letter L or l to
			   specify the last day of the month.

	     Some examples:

		   $D0	   rotate every night at midnight
		   $D23    rotate every day at 23:00 hr
		   $W0D23  rotate every week on Sunday at 23:00 hr
		   $W5D16  rotate every week on Friday at 16:00 hr
		   $MLD0   rotate at the last day of every month at midnight
		   $M5D6   rotate on every 5th day of month at 6:00 hr

     flags   This  optional  field specifies if the archive should have any spe-
	     cial processing done to the archived log files.  The  Z  flag  will
	     make  the	archive  files	compress to save space by using gzip(1).
	     The J flag will make the archive files compress to  save  space  by
	     using  bzip2(1).	The B flag means that the file is a binary file,
	     and so the ASCII message which newsyslog inserts  to  indicate  the
	     fact  that  the  logs have been turned over should not be included.
	     The - flag means nothing, but can be used as a placeholder when the
	     path_to_pid_file field is specified.

     path_to_pid_file
	     This optional field specifies the file name to  read  to  find  the
	     daemon  process  id.   If this field is present, a signal_number is
	     sent the process id contained in this file.  This field must  start
	     with "/" in order to be recognized properly.

     signal_number
	     This optional field specifies the signal number will be sent to the
	     daemon process.  By default a SIGHUP will be sent.

OPTIONS
     The following options can be used with newsyslog:

     -f config_file
	     Instruct	  newsyslog    to    use    config_file    instead    of
	     /etc/newsyslog.conf for its configuration file.

     -a directory
	     Specify a directory into which archived log files will be	written.
	     If a relative path is given, it is appended to the path of each log
	     file and the resulting path is used as the directory into which the
	     archived  log  for  that  log file will be written.  If an absolute
	     path is given,  all  archived  logs  are  written	into  the  given
	     directory.   If any component of the path directory does not exist,
	     it will be created when newsyslog is run.

     -v      Place newsyslog in verbose mode.  In this mode it	will  print  out
	     each  log	and its reasons for either trimming that log or skipping
	     it.

     -n      Cause newsyslog not to trim the logs, but	to  print  out	what  it
	     would do if this option were not specified.

     -r      Remove  the restriction that newsyslog must be running as root.  Of
	     course, newsyslog will not be able to send a  HUP	signal	to  sys-
	     logd(8) so this option should only be used in debugging.

     -F      Force  newsyslog to trim the logs, even if the trim conditions have
	     not been met.  This option is useful for diagnosing system problems
	     by providing you with fresh logs that contain only the problems.

     If additional command line arguments are given, newsyslog will only examine
     log files that match those arguments; otherwise, it will examine all  files
     listed in the configuration file.

FILES
     /etc/newsyslog.conf      newsyslog configuration file

BUGS
     Doesn't yet automatically read the logs to find security breaches.

AUTHORS
     Theodore Ts'o, MIT Project Athena

     Copyright 1987, Massachusetts Institute of Technology

COMPATIBILITY
     Previous  versions  of the newsyslog utility used the dot (``.'') character
     to distinguish the group name.  Begining with FreeBSD 3.3,  this  has  been
     changed  to a colon (``:'') character so that user and group names may con-
     tain the dot character.  The dot (``.'') character is  still  accepted  for
     backwards compatibility.

SEE ALSO
     gzip(1), syslog(3), chown(8), syslogd(8)

FreeBSD 4.5			  April 4, 2000 		    NEWSYSLOG(8)

home | help