Man Linux: Main Page and Category List

NAME

       shtool-rotate - GNU shtool log file rotation

SYNOPSIS

       shtool rotate [-v|--verbose] [-t|--trace] [-f|--force] [-n|--num-files
       count] [-s|--size size] [-c|--copy] [-r|--remove] [-a|--archive-dir
       dir] [-z|--compress [tool:]level] [-b|--background] [-d|--delay]
       [-p|--pad len] [-m|--mode mode] [-o|--owner owner] [-g|--group group]
       [-M|--migrate cmd] [-P|--prolog cmd] [-E|--epilog cmd] file [file ...]

DESCRIPTION

       This command rotates a logfile file by subsequently creating up to
       count (optionally compressed) archive files of it. Archive files are
       named "file.number[compress-suffix]" where number is the version
       number, 0 being the newest and "count-1" the oldest.

       A rotation step consists of the following steps

       1. remove last archive file 2. shift archive file numbers 3. create
       archive file 0 from file 4. truncate/recreate file

OPTIONS

       The following command line options are available.

       -v, --verbose
           Display some processing information.

       -t, --trace
           Enable the output of the essential shell commands which are
           executed.

       -f, --force
           Force silent creation of archive directory if it does not exists.
           Also skip missing intermediate logfiles in the rotation step.
           Default is to exit with error in both cases. FIXME

       -n, --num-files count
           Create count archive files. Default is 10.

       -s, --size size
           Only rotate if logfile exceeds size. The argument size can be
           specified also with the trailing units "K" (kilo), "M" (mega) or
           "G" (giga). The "prolog" and "epilog" are only executed if rotation
           actually takes place.

       -c, --copy
           Copy file to archive then truncate original. The default is to move
           file to archive.

           Unless an application reopens its logfile it will continue to write
           to the same file. In the default move case the application will
           write to the archive which it had previously opened as file. In the
           copy case the application will write to the original file. The
           drawback of the copy approach is that logfile entries are lost when
           they are written to file between the execution of the copy and the
           truncation operation. The drawback of the move approach is that the
           application needs to detect the move or must be triggered to reopen
           its log (i.e.  through epilog).

       -r, --remove
           Removes file after rotation instead of providing a new empty file.

       -a, --archive-dir dir
           Specify the archive directory. Default is to create archives in the
           same directory as file is located.

       -z, --compress [tool:]level
           Enables compression of archive files with compression level level
           By default, the tools bzip2(1), gzip(1) and compress(1) are
           searched for in $PATH, but one also can override this by prefixing
           the compression level with one of the three particular tool names.

       -b, --background
           Enable background compression.

       -d, --delay
           Delays the compression of archive file number 0. This is useful if
           ‘‘-c’’ is not used, because an application might continue to write
           to archive file 0 through an already open file handle.

       -p, --pad len
           Enables padding with leading zeros in the number part of the
           filename "file.numbercompress-suffix". The default padding len is
           1.  This is interesting if more than 10 archive files are used,
           because it leads to still sorted directory listings.

       -m, --mode mode
           The file mode applied to the created files, see chmod(1). Setting
           mode to "-" skips this step and leaves the operating system default
           which is usually based on umask(1). Some file modes require
           superuser privileges to be set. Default is 0755.

       -o, --owner owner
           The file owner name or id applied to the created files, see
           chown(1). This option requires superuser privileges to execute.
           Default is to skip this step and leave the operating system default
           which is usually based on the executing uid or the parent setuid
           directory.

       -g, --group group
           The file group name or id applied to the created files, see
           chgrp(1). This option requires superuser privileges to execute to
           the fullest extend, otherwise the choice of group is limited on
           most operating systems.  Default is to skip this step and leave the
           operating system default which is usually based on the executing
           gid or the parent setgid directory.

       -M, --migrate cmd
           Execute a "migration" command just before the archive file number
           count-1 is removed from the filesystem. The specified cmd receives
           the archive filename as command line argument.

       -P, --prolog cmd
           Execute a "prolog" command before the rotation step. Useful in
           conjunction with -s.

       -E, --epilog cmd
           Execute a "epilog" command after the rotation step. Useful in
           conjunction with -s.

EXAMPLE

        #   shell script
        shtool rotate -n10 -s1M -zbzip2:9 -d -r /var/log/ap.access.log
        shtool rotate -n5 -s128K -zbzip2:9 -d -r /var/log/ap.error.log
        apachectl graceful

HISTORY

       The GNU shtool rotate command was originally written by Ralf S.
       Engelschall <rse@engelschall.com> in 2001 for GNU shtool.  Its
       development was prompted by the need to have a flexible logfile
       rotation facility in the OpenPKG project.

SEE ALSO

       shtool(1), BSD newsyslog(8).