[Xastir] log file archiving documentation - for Raspian/Debian/Ubuntu
Steven Morrison
morrison.monahans at sbcglobal.net
Thu Sep 1 13:52:41 PDT 2016
Below is a revised change to this page
https://xastir.org/index.php/HowTo:Auto-Rollover_Via_CRON, on
automatically archiving and rotating log file for Xastir. The existing
page show an example for Suse Linux, and doesn't work for Debian derived
distributions such as Ubuntu and in my my case, Raspian running on a
Raspberry Pi. It retains the existing information, and adds instructions
to implement LogRotate on a Raspberry PI 2. Hopefully someone and copy
this to the wiki page.
This is the default documentation for Xastir and cron, found on the
Xastir.org website. This page should replace the existing page:
https://xastir.org/index.php/HowTo:Auto-Rollover_Via_CRON. Begin
documentation page.
= = = = = = = = = = = = = = = = = = = = =
The existing documentation doesn't work for the Raspberry Pi. See the
Raspberry PI section below for details on how to start cron and
logrotate on a Raspberry Pi.
Maintaining log files is an important part of keeping computer systems
running smoothly. Log files provide a history of what has happened on
your computer, and provide information on what errors occurred. Linux
systems logs are normally stored in the /var/log directory. But the log
files must be maintained, both to organize the data, and to prevent them
from filling up all of the file space.
This example deals with data logs generated by Xastir, a ham radio
packet data program. In Xastir, the log files provide a history of what
data has passed through the system, and through which interfaces.
Linux systems provide tools to organize the log files, and automatically
delete them after a specified period. However, different Linux
distributions provide different tools to handle the job. The first
section of this page provides information on handling log files on a
SUSE distribution, while the second section describe how to setup log
file maintenance on Debian based systems, including Ubuntu and Raspian
distributions.
*For SUSE distributions:*
NOTE: Most if not all of the log files for Xastir now auto-rollover at a
certain file size, keeping several older versions of each before they
get deleted. The information on this Wiki page should still be
applicable to other log files on your Linux system however.
Crond daemon must be running on your system.
Here are detailed instructions for SuSE systems for auto-rollover of log
files:
Edit /etc/logfiles to add the four logfiles for each user:
#xastir
/home/archer/.xastir/logs/net.log +1024k 644 archer.users
/home/archer/.xastir/logs/tnc.log +1024k 644 archer.users
/home/archer/.xastir/logs/wx.log +1024k 644 archer.users
/home/archer/.xastir/logs/igate.log +1024k 644 archer.users
/home/hacker/.xastir/logs/net.log +1024k 644 hacker.users
/home/hacker/.xastir/logs/tnc.log +1024k 644 hacker.users
/home/hacker/.xastir/logs/wx.log +1024k 644 hacker.users
/home/hacker/.xastir/logs/igate.log +1024k 644 hacker.users
Edit /etc/rc.config, change MAX_DAYS_FOR_LOG_FILES to something
reasonable and uncomment the line. I set mine for 5 days. Note that this
limit will affect ALL logfiles listed in /etc/logfiles:
#MAX_DAYS_FOR_LOG_FILES=365
MAX_DAYS_FOR_LOG_FILES=5
=========================================================================================================================================
*For Debian derived distributions, including Ubuntu and the Raspberry Pi:*
This documentation was developed on a Raspberry PI 2, running Raspian
Jessie. It should be accurate for Debian and Ubuntu systems, as well.
You can find more information on the web, or by running the /man
logrotate/ command.
Cron is a daemon program that is included on most Unix/Linux operating
systems that runs jobs on a time based schedule. However under Raspian,
cron is not set to start automatically when the Pi powers up. We'll
change that in the next few steps.
First we need to check to see if cron is running. At the command line type:
/$ sudo service --status-all | grep cron/
This will list all services with cron in the name, and display their
current status. On my Pi, it produced this result:
pi at deimosraspi:~ $ sudo service --status-all | grep cron
[ - ] anacron
[ ? ] aprsd
[ + ] cron
Since cron appears with a +, we know that it is set to start
automatically when the system is rebooted. If cron appears with a -, we
need to start it. At the command line, type:
/$ sudo service cron start/
It's probably a good idea to reboot your Pi now, and recheck that cron
starts when the system is rebooted.
Raspian Linux, and other Debian derived Linux distributions, run a
program called logrotate. Logrotate can use a default schedule for all
log files, or it can use custom settings for individual and groups of
log files. In addition, log files can be set to automatically rotate
based on time, (days, weeks, months), based on a minimum and/or maximum
file size. Rotated log files can be compressed, retained for a certain
time period and then be deleted by the system. More details can be found
with the /man logrotate /command.
The default setup for logrotate is in /etc/logrotate.conf.
Alternatively, you can create a separate logrotate configuration for
individual applications in the /etc/logrotate.d directory.
Log files are renamed in the form /filename.x /and /filename.x.gz /where
x is the version number, and .gz indicatesa compressed file. The oldest
file is deleted when the maximum number of copies is reached, and the x
value is incremented for each of the archived copies. If the
/dateext/option is used, the file hasthe date the log file is rotated
added to the file name eg. /filenameYYYYMMDD/. These files are not
renamed, but simply allowed to age, and the system deletes the old files
after the specified retention period.
The logrotate file I created for Xastir is /etc/logrotate.d/xastir, and
contains the following rules:
//home/pi/.xastir/logs/igate.log/
//home/pi/.xastir/logs/message.log/
//home/pi/.xastir/logs/net.log/
//home/pi/.xastir/logs/tnc.log/
//home/pi/.xastir/logs/wx.log/
//home/pi/.xastir/logs/wx_alert.log/
/{/
/rotate 7/
/daily/
/minsize 500k/
/maxsize 2G/
/compress/
/dateext/
/delaycompress/
/copytruncate/
/missingok/
/notifempty/
/}/
The first section lists the log files to be rotated. The section below
the file names and defined by the { and } are the rules that apply to
all of these files. The rules break down as follows:
/rotate 7 - /Retain 7 copies log files
/weekly//- /Rotate the log files weekly. Other options are daily and monthly
/minsize 100k - /don't rotate the log file unless it is at least 100kB
in size, regardless of how many days it has been attached
/maxsize 2G - /Rotate the log file if it exceedes2 GB in size, even if
the log file hasn't been attached for the period specified
/compress - /Compress the log file when it is rotated, with gzip.
/Dateext/– append the date to the logfile in the format YYMMDD
/delaycompress/ – Don't compress the log file until the next time it is
rotated
/copytruncate – /This option copies the log file to a backup, and
truncates the original file. This is useful when processes are still
writing information to an open log file.
/missingok – /Don't issue an error if the log file is missing, continue
processing the command
/notifempty/ - Don't rotate the log file if it is empty
= = = = = = = = = = = = = = = =
End documentation page
Thanks,
Steve
On 8/30/2016 9:35 AM, Curt Mills wrote:
> Send your changes to the list. Ask someone with Wiki edit privileges to
> make the changes for you. If you get to be a regular submitter, I can grant
> you wiki edit privileges.
>
> On Wed, Aug 24, 2016 at 10:48 PM, Steven Morrison <
> morrison.monahans at sbcglobal.net> wrote:
>
>> I am finalizing some changes to the Xastir documentation pages for
>> archiving log files. What is the proper way to submit them?
>>
>> Steve
>> KE5SXT
>> _______________________________________________
>> Xastir mailing list
>> Xastir at lists.xastir.org
>> http://xastir.org/mailman/listinfo/xastir
>>
>
>
More information about the Xastir
mailing list