summaryrefslogtreecommitdiffstats
path: root/doc/log_rotation_fix_size.html
diff options
context:
space:
mode:
authorMichael Meckelein <mmeckelein@hq.adiscon.com>2008-01-18 14:22:56 +0000
committerMichael Meckelein <mmeckelein@hq.adiscon.com>2008-01-18 14:22:56 +0000
commitff3a56a121bdc356847e2f25ef664ee4e37ad02c (patch)
tree52a099bf41d5a46e1a57902465025d9b1c6c180a /doc/log_rotation_fix_size.html
parenteed61097bd4de624a4b695d53ed6d937dbd51021 (diff)
downloadrsyslog-ff3a56a121bdc356847e2f25ef664ee4e37ad02c.tar.gz
rsyslog-ff3a56a121bdc356847e2f25ef664ee4e37ad02c.tar.xz
rsyslog-ff3a56a121bdc356847e2f25ef664ee4e37ad02c.zip
*** empty log message ***
Diffstat (limited to 'doc/log_rotation_fix_size.html')
-rw-r--r--doc/log_rotation_fix_size.html59
1 files changed, 59 insertions, 0 deletions
diff --git a/doc/log_rotation_fix_size.html b/doc/log_rotation_fix_size.html
new file mode 100644
index 00000000..182833b9
--- /dev/null
+++ b/doc/log_rotation_fix_size.html
@@ -0,0 +1,59 @@
+<html><head>
+<title>Keep the log file size accurate with log rotation</title>
+<meta name="KEYWORDS" content="log rotation, howto, guide, fixed-size log">
+</head>
+<body>
+<h1>Log rotation with rsyslog</h1>
+ <P><small><i>Written by
+ Michael Meckelein</i></small></P>
+<h2>Situation</h2>
+
+<p>Your environment does not allow you to store tons of logs?
+You have limited disc space available for logging, for example
+you want to log to a 124 MB RAM usb stick? Or you do not want to
+keep all the logs for months, logs from the last days is sufficient?
+Think about log rotation.</p>
+
+<h2>Log rotation based on fixed-size file</h2>
+
+<p>This small but hopefully useful article will show you the way
+to keep your logs at a given size. The following sample is based on
+rsyslog illustrating a simple but effective log rotation with a
+maximum size condition.</p>
+
+<h2>Use Output Channels for fixed-length syslog files</h2>
+
+<p>Lets assume you do not want to spend more than 100 MB hard
+disc space for you logs. With rsyslog you can configure Output
+Channels to achieve this. Putting the following directive</p>
+
+<p><pre>
+# start log rotation via outchannel
+# outchannel definiation
+$outchannel log_rotation,/var/log/log_rotation.log, 52428800,/home/me/./log_rotation_script
+# activate the channel and log everything to it
+*.* $log_rotation
+# end log rotation via outchannel
+</pre></p>
+
+<p>to ryslog.conf instruct rsyslog to log everything to the destination file
+'/var/log/log_rotation.log' until the give file size of 50 MB is reached. If
+the max file size is reached it will perform an action. In our case it executes
+the script /home/me/log_rotation_script which contains a single command:</p>
+
+<p><pre>
+mv -f /var/log/log_rotation.log /var/log/log_rotation.log.1
+</p></pre>
+
+<p>This moves the original log to a kind of backup log file.
+After the action was successfully performed rsyslog creates a new /var/log/log_rotation.log
+file and fill it up with new logs. So the latest logs are always in log_roatation.log.</p>
+
+<h2>Conclusion</h2>
+
+<p>With this approach you use two files for logging, each with a maximum size of 50 MB. So
+we can say we have successfully configured a log rotation which satisfies our requirement.
+We keep the logs at a fixed-size level of100 MB.</p>
+
+</body>
+</html>