rotate logs

Content

 

Data

license:
Version:
Developer / owner:

Short description:

Manual page and help for the rotatelogs Linux command. rotatelogs is a simple tool for rotating Apache log files.

 

 

Man page output

man rotatelogs
ROTATELOGS(8)                                                rotatelogs                                               ROTATELOGS(8)

NAME
       rotatelogs - Piped logging program to rotate Apache logs

SYNOPSIS
       rotatelogs  [  -l  ] [ -L linkname ] [ -p program ] [ -f ] [ -D ] [ -t ] [ -v ] [ -e ] [ -c ] [ -n number-of-files ] logfile
       rotationtime|filesize(B|K|M|G) [ offset ]

SUMMARY
       rotatelogs is a simple program for use in conjunction with Apache's piped logfile feature. It supports rotation based  on  a
       time interval or maximum size of the log.

OPTIONS
       -l     Causes  the  use  of local time rather than GMT as the base for the interval or for strftime(3) formatting with size-
              based rotation.

       -L linkname
              Causes a hard link to be made from the current logfile to the specified link name. This can be used to watch the  log
              continuously across rotations using a command like tail -F linkname.

       -p program
              If  given,  rotatelogs  will  execute  the specified program every time a new log file is opened. The filename of the
              newly opened file is passed as the first argument to the program. If executing after a rotation, the old log file  is
              passed  as  the second argument. rotatelogs does not wait for the specified program to terminate before continuing to
              operate, and will not log any error code returned on termination. The spawned program uses the  same  stdin,  stdout,
              and stderr as rotatelogs itself, and also inherits the environment.

       -f     Causes  the  logfile to be opened immediately, as soon as rotatelogs starts, instead of waiting for the first logfile
              entry to be read (for non-busy sites, there may be a substantial delay between when the server is  started  and  when
              the  first request is handled, meaning that the associated logfile does not "exist" until then, which causes problems
              from some automated logging tools)

       -D     Creates the parent directories of the path that the log file will be placed in if they do not already exist. This al‐
              lows strftime(3) formatting to be used in the path and not just the filename.

       -t     Causes  the logfile to be truncated instead of rotated. This is useful when a log is processed in real time by a com‐
              mand like tail, and there is no need for archived data. No suffix will be  added  to  the  filename,  however  format
              strings containing '%' characters will be respected.

       -v     Produce  verbose output on STDERR. The output contains the result of the configuration parsing, and all file open and
              close actions.

       -e     Echo logs through to stdout. Useful when logs need to be further processed in real time by  a  further  tool  in  the
              chain.

       -c     Create log file for each interval, even if empty.

       -n number-of-files
              Use  a  circular  list of filenames without timestamps. With -n 3, the series of log files opened would be "logfile",
              "logfile.1", "logfile.2", then overwriting "logfile". Available in 2.4.5 and later.

       logfile

       rotationtime
              The time between log file rotations in seconds. The rotation occurs at the beginning of this interval.  For  example,
              if  the  rotation  time is 3600, the log file will be rotated at the beginning of every hour; if the rotation time is
              86400, the log file will be rotated every night at midnight. (If no data is logged during an interval, no  file  will
              be created.)

       filesize(B|K|M|G)
              The  maximum file size in followed by exactly one of the letters B (Bytes), K (KBytes), M (MBytes) or G (GBytes). .PP
              When time and size are specified, the size must be given after the time. Rotation will occur whenever either time  or
              size limits are reached.

       offset The number of minutes offset from UTC. If omitted, zero is assumed and UTC is used. For example, to use local time in
              the zone UTC -5 hours, specify a value of -300 for this argument. In most cases, -l should be used instead of  speci‐
              fying an offset.

EXAMPLES
            CustomLog "|bin/rotatelogs /var/log/logfile 86400" common

       This creates the files /var/log/logfile.nnnn where nnnn is the system time at which the log nominally starts (this time will
       always be a multiple of the rotation time, so you can synchronize cron scripts with it). At the end of  each  rotation  time
       (here after 24 hours) a new log is started.

            CustomLog "|bin/rotatelogs -l /var/log/logfile.%Y.%m.%d 86400" common

       This  creates the files /var/log/logfile.yyyy.mm.dd where yyyy is the year, mm is the month, and dd is the day of the month.
       Logging will switch to a new file every day at midnight, local time.

            CustomLog "|bin/rotatelogs /var/log/logfile 5M" common

       This configuration will rotate the logfile whenever it reaches a size of 5 megabytes.

            ErrorLog "|bin/rotatelogs /var/log/errorlog.%Y-%m-%d-%H_%M_%S 5M"

       This configuration will rotate the error logfile whenever it reaches a size of 5 megabytes, and the suffix  to  the  logfile
       name will be created of the form errorlog.YYYY-mm-dd-HH_MM_SS.

            CustomLog "|bin/rotatelogs -t /var/log/logfile 86400" common

       This  creates the file /var/log/logfile, truncating the file at startup and then truncating the file once per day. It is ex‐
       pected in this scenario that a separate process (such as tail) would process the file in real time.

PORTABILITY
       The following logfile format string substitutions should be supported by all  strftime(3)  implementations,  see  the  strf‐
       time(3) man page for library-specific extensions.

       • %A - full weekday name (localized)

       • %a - 3-character weekday name (localized)

       • %B - full month name (localized)

       • %b - 3-character month name (localized)

       • %c - date and time (localized)

       • %d - 2-digit day of month

       • %H - 2-digit hour (24 hour clock)

       • %I - 2-digit hour (12 hour clock)

       • %j - 3-digit day of year

       • %M - 2-digit minute

       • %m - 2-digit month

       • %p - am/pm of 12 hour clock (localized)

       • %S - 2-digit second

       • %U - 2-digit week of year (Sunday first day of week)

       • %W - 2-digit week of year (Monday first day of week)

       • %w - 1-digit weekday (Sunday first day of week)

       • %X - time (localized)

       • %x - date (localized)

       • %Y - 4-digit year

       • %y - 2-digit year

       • %Z - time zone name

       • %% - literal `%'

Apache HTTP Server                                           2018-07-06                                               ROTATELOGS(8)

 

 

Help output

sudo rotatelogs
Usage: rotatelogs [-v] [-l] [-L linkname] [-p prog] [-f] [-D] [-t] [-e] [-c] [-n number] <logfile> {<rotation time in seconds>|<rotation size>(B|K|M|G)} [offset minutes from UTC]

Add this:

TransferLog "|rotatelogs /some/where 86400"

or 

TransferLog "|rotatelogs /some/where 5M"

to httpd.conf. By default, the generated name will be
<logfile>.nnnn where nnnn is the system time at which the log
nominally starts (N.B. if using a rotation time, the time will
always be a multiple of the rotation time, so you can synchronize
cron scripts with it). If <logfile> contains strftime conversion
specifications, those will be used instead. At the end of each
rotation time or when the file size is reached a new log is
started.

Options:
  -v       Verbose operation. Messages are written to stderr.
  -l       Base rotation on local time instead of UTC.
  -L path  Create hard link from current log to specified path.
  -p prog  Run specified program after opening a new log file. See below.
  -f       Force opening of log on program start.
  -D       Create parent directories of log file.
  -t       Truncate logfile instead of rotating, tail friendly.
  -e       Echo log to stdout for further processing.
  -c       Create log even if it is empty.
  -n num   Rotate file by adding suffixes '.1', '.2', ..., '.num'.

The program for '-p' is invoked as "[prog] <curfile> [<prevfile>]"
where <curfile> is the filename of the newly opened logfile, and
<prevfile>, if given, is the filename of the previously used logfile.

 

Related Content

  •