|2021-11-24||Add To-Do comments regarding copy_file_range, mmap, and fsync||Sören Tempel|
|2021-10-30||Make error message for strtoul failure more accurate||Sören Tempel|
|2021-10-30||tests: add test case for `-k 100`||Sören Tempel|
|2021-10-30||Add support for keeping zero percent of the content in current||Sören Tempel|
|2021-10-30||Improve strtoul error detection||Sören Tempel|
Clone the repository to access all 61 commits.
Iteratively archive newline separated log files.
I actively use this software for archiving hii chat logs. For this purpose it currently works entirely fine as is.
Consider the file
/var/log/messages with the following content:
Jun 2 10:27:05 somehost syslog.info syslogd exiting Jun 2 10:28:05 somehost syslog.info syslogd started
archive-logs -k 50 /var/log /mnt/nfs/archive/logs will
cause 50% of the data in
/var/log/messages to be retained and the
other 50% to be archived in
/mnt/nfs/archive. The utility will only
archive old data. As such, a file called
will exist after the invocation with the following content:
Jun 2 10:27:05 somehost syslog.info syslogd exiting
The existing log file
/var/log/messages will be truncated to only
store recent data, i.e. its content will be the following:
Jun 2 10:28:05 somehost syslog.info syslogd started
The software can be compiled using:
The software makes heavy use of the Linux
sendfile(2) system call. If
this system call is available it is highly desirable to compile with
HAVE_SENDFILE=1. By default a compatibility function is used which
emulates the sendfile system call in userland.
After compilation, tests can be run using:
The software can be installed globally using:
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.