``logrotate`` ============= This module configures ``logrotate``. Further information an examples can be found in the following link: * https://git.psi.ch/linux-infra/voxpupuli-logrotate Main class ``logrotate`` can be called, but usually calling just a rule ``logrotate::rule`` should be enough to automatically configure ``logrotate`` in the host. It will use the default values for this class, which is placing all the default ``rules`` from the O.S. to the ``/etc/logrotate.d`` directory. Parameters ---------- All available parameters are:: namevar - The String name of the rule. path - The path String to the logfile(s) to be rotated. ensure - The desired state of the logrotate rule as a String. Valid values are 'absent' and 'present' (default: 'present'). compress - A Boolean value specifying whether the rotated logs should be compressed (optional). compresscmd - The command String that should be executed to compress the rotated logs (optional). compressext - The extention String to be appended to the rotated log files after they have been compressed (optional). compressoptions - A String of command line options to be passed to the compression program specified in `compresscmd` (optional). copy - A Boolean specifying whether logrotate should just take a copy of the log file and not touch the original (optional). copytruncate - A Boolean specifying whether logrotate should truncate the original log file after taking a copy (optional). create - A Boolean specifying whether logrotate should create a new log file immediately after rotation (optional). create_mode - An octal mode String logrotate should apply to the newly created log file if create => true (optional). create_owner - A username String that logrotate should set the owner of the newly created log file to if create => true (optional). create_group - A String group name that logrotate should apply to the newly created log file if create => true (optional). dateext - A Boolean specifying whether rotated log files should be archived by adding a date extension rather just a number (optional). dateformat - The format String to be used for `dateext` (optional). Valid specifiers are '%Y', '%m', '%d' and '%s'. dateyesterday - A Boolean specifying whether to use yesterday's date instead of today's date to create the `dateext` extension (optional). delaycompress - A Boolean specifying whether compression of the rotated log file should be delayed until the next logrotate run (optional). extension - Log files with this extension String are allowed to keep it after rotation (optional). ifempty - A Boolean specifying whether the log file should be rotated even if it is empty (optional). mail - The email address String that logs that are about to be rotated out of existence are emailed to (optional). mailfirst - A Boolean that when used with `mail` has logrotate email the just rotated file rather than the about to expire file (optional). maillast - A Boolean that when used with `mail` has logrotate email the about to expire file rather than the just rotated file (optional). maxage - The Integer maximum number of days that a rotated log file can stay on the system (optional). minsize - The String minimum size a log file must be to be rotated, but not before the scheduled rotation time (optional). The default units are bytes, append k, M or G for kilobytes, megabytes and gigabytes respectively. maxsize - The String maximum size a log file may be to be rotated; When maxsize is used, both the size and timestamp of a log file are considered for rotation. The default units are bytes, append k, M or G for kilobytes, megabytes and gigabytes respectively. missingok - A Boolean specifying whether logrotate should ignore missing log files or issue an error (optional). olddir - A String path to a directory that rotated logs should be moved to (optional). postrotate - A command String that should be executed by /bin/sh after the log file is rotated (optional). prerotate - A command String that should be executed by /bin/sh before the log file is rotated and only if it will be rotated (optional). firstaction - A command String that should be executed by /bin/sh once before all log files that match the wildcard pattern are rotated (optional). lastaction - A command String that should be execute by /bin/sh once after all the log files that match the wildcard pattern are rotated (optional). rotate - The Integer number of rotated log files to keep on disk (optional). rotate_every - How often the log files should be rotated as a String. Valid values are 'hour', 'day', 'week', 'month' and 'year' (optional). Please note, older versions of logrotate do not support yearly log rotation. size - The String size a log file has to reach before it will be rotated (optional). The default units are bytes, append k, M or G for kilobytes, megabytes or gigabytes respectively. sharedscripts - A Boolean specifying whether logrotate should run the postrotate and prerotate scripts for each matching file or just once (optional). shred - A Boolean specifying whether logs should be deleted with shred instead of unlink (optional). shredcycles - The Integer number of times shred should overwrite log files before unlinking them (optional). start - The Integer number to be used as the base for the extensions appended to the rotated log files (optional). su_owner - A username String that logrotate should use to rotate a log file set instead of using the default if su => true (optional). su_group - A String group name that logrotate should use to rotate a log file set instead of using the default if su => true (optional). uncompresscmd - The String command to be used to uncompress log files (optional). Examples -------- Configure ``logrotate.conf``:: logrotate::conf { '/etc/logrotate.conf': rotate => 10, rotate_every => 'week', ifempty => true, dateext => true, } Rule for rotating ``messages``:: logrotate::rule { 'messages': path => '/var/log/messages', rotate => 5, rotate_every => 'week', postrotate => '/usr/bin/killall -HUP syslogd', } Rule for rotating ``slurmd`` client:: logrotate::rule { 'slurmd': path => '/var/log/slurm/slurmd.log', rotate => $rotate, rotate_every => $rotate_every, compress => true, create => true, create_mode => '0600', create_owner => 'slurm', create_group => 'slurm', missingok => true, ifempty => false, sharedscripts => true, postrotate => '/bin/systemctl reload slurmd.service > /dev/null 2>/dev/null || true'; }