PMLOGCOMPRESS(1)

NAME
pmlogcompress - compress and decompress PCP archive files

SYNOPSIS
pmlogcompress [-dNVz?] [-A arg] [-c proglist] [-f prog] [-l limit] [-o type] [-t dir] [-Z min] archive]...

DESCRIPTION
pmlogcompress supports the compression and decompression of the files that make up a Performance Co-Pilot (PCP) archive; refer to LOGARCHIVE(5) for an explanation of the various files that are components of a PCP archive.

The archive arguments may be either the name of a single file in a PCP archive or the basename of a PCP archive, as in the style generated by pmlogbasename(1). In the former case, pmlogcompress will compress or decompress just that file, but in the latter case pmlogcompress will attempt to compress or decompress all the files that are part of the associated PCP archive.

In keeping with other compression tools, the default mode for pmlogcompress is to compress, i.e. the -z option, to decompress the -d option is required.

OPTIONS
The available command line options are:

-A arg, --arg=arg
    arg is used as an argument to the compression program; most likely useful with the -f option so that the choice of compression program is deterministic.

    The processing of arg is not sophisticated, so embedded shell variables, escape characters, shell ``glob'' characters and white space should be avoided.

    Multiple -A options are allowed and all the arg arguments will be used.

-c proglist, --command=proglist
    Depending on other command line options, and the availability of installed compression programs, the choice if program when compressing may vary. The -c option allows a list of compression programs to be provided, either with multiple -c options and/or by separating program names in proglist by a colon, in the style of the shell's $PATH notation.

    The default value for proglist is zstd:xz:bzip2:gzip.

-f prog, --use=prog
    If only one program is to be considered for compression then this may be specified using the -f option. The effect is the same as if only one -c option was used, and proglist contained exactly one program name, namely prog.

-d, --decompress
    Choose decompression mode. The suffix of each file associated with archive determines the decompression tool to be used.

-l limit, --lower-limit=limit
    When compressing, do not consider files smaller than limit (bytes).

-N, --show-me
    Do nothing, but show what commands would have been executed.

-o type, --optimize=type
    When compressing the -o option will try to pick the compression program from proglist (see the -c option above) that does the ``best'' job, where type may be size to choose the compression program that produces the smallest output file, or cpu to choose the compression program that uses the least CPU time.

    If archive is an archive basename then the largest of the files that are part of the associated PCP archive is selected for the test, else archive will be used for the test.

    Use of this option means each of the selected archive files will be compressed multiple times, so it is likely that -o would be used in experiments with -N (and possibly -V) to determine the best compression tool for the local environment and PCP archives.

-t dir, --dir=dir
    When decompressing any compressed files will (by default) be replaced by their decompressed equivalent. The -t option changes this behavior to create a duplicate, uncompressed archive in the dir directory.

    If archive is a single file, then only that file is decompressed into dir, but if archive is an archive basename then all of the files of archive will be copied, and possibly decompressed, into dir.

    dir must exist before pmlogcompress is run.

-V, --verbose
    Increase verbosity.

-z, --compress
    Choose compression mode (the default).

-Z min, --min-zstd-size=min
    xz(1) produces smaller compressed files for small input files, but at some point the input file becomes large enough that zstd(1) produces smaller compressed files and zstd is typically much faster.

    When both xz and xstd are in consideration (see the -c option above), then the -Z option allows the user to tune where the xz to zstd cut-over happens; input files smaller than min (in bytes) will be compressed with xz else zstd will be used.

    The default value for min is 52428800 (50MiB).

-?, --help
    Display usage message and exit.

SEE ALSO
PCPIntro(1), bzip2(1), gzip(1), pmlogbasename(1), pmlogger(1), pmlogger_check(1), pmlogger_daily(1), xz(1), zstd(1) and LOGARCHIVE(5).

TODO
back reference to pmlogger_daily and friends where all the compression is done at the moment