Tarlogs

Create a Tar stream of arbitrarily-named entries by concatenating compressed and regular files

Download as .zip Download as .tar.gz View on GitHub

Create a Tar stream of arbitrarily-named entries by concatenating groups of regular & compressed files

DESCRIPTION

tarlogs concatenates groups of regular and gzipped files (the latter are uncompressed first), then outputs the resulting entries to stdout, packed under arbitrary names in a tar stream. Each entry inherits its permission / ownership from the last file concatenated into that entry.

Streams (the size of which can only be determined by reading until encountering EOF) will be buffered into memory. Either memory buffering or temporary files are necessary for streams because the tar format requires byte sizes of entries to precede their contents.

Directories are recursed into, as with regular tar, and may not be concatenated with other inputs. In this case one -o generates multiple tar entries, and controls the top-level path for all of them.

RUNNING

cd /var/log
/path/tarlogs.py \
  -z dpkg.log.2.gz -i dpkg.log.1 -i dpkg.log -o dpkg-recent.log \
  -i kern.log.1 -i kern.log -o kern-recent.log |
zbackup /zblogs/backups/$(date '+%Y%m%d_%H%M%S')

This will output a tar archive containing 2 entries, dpkg-recent.log and kern-recent.log. Run tarlogs.py -h for more help.

COPYRIGHT

Copyright 2015 Dan A. Muresan

See LICENSE.txt for licensing information.