Man page of SHTOOL-ROTATE.TMP
Section: GNU Portable Shell Tool (1)
Updated: shtool 2.0.8
Return to Main Contents
shtool rotate - GNU shtool log file rotation
file [file ...]
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
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
- -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.
- -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
- -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.
# 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
The GNU shtool rotate command was originally written by Ralf S.
Engelschall <firstname.lastname@example.org> in 2001 for GNU shtool.
Its development was prompted by the need to have a flexible
logfile rotation facility in the OpenPKG project.
shtool(1), BSD newsyslog(8).
- SEE ALSO
This document was created by
using the manual pages.
Time: 03:41:17 GMT, September 24, 2010