PMLOGPUSH(1)
π PMLOGPUSH β push an archive to a remote pmproxy server β¨
okay bestie, gather round, because this one is from the General Commands Manual section and it's literally the little tool that yeets your PCP archive over to a remote server. it's called pmlogpush and it's in section 1 of the manual, and yes it slays π«Ά
πΈ NAME πΈ
pmlogpush β push an archive to a remote pmproxy server
π¦ SYNOPSIS π¦
pmlogpush [-SvV?] [-D debug] [-h host] [-p port] [-s unix] [-U user]
[-P passfile] [-Z timezone] archive
β¨ DESCRIPTION β¨
so here's the vibe: pmlogpush takes the contents of a Performance Co-Pilot (PCP) archive and sends it to a HTTP server β usually a remote pmproxy(1) daemon β using the logger API subset inside PMWEBAPI(5). no cap, that's the whole job π
the archive you're pushing must have already been created using pmlogger(1). that's not optional, that's the prerequisite, periodt.
also, that archive should be complete and finished β not actively being written to. if something's still writing to it, that's not this tool's moment π
by default the archive gets transferred over cleartext HTTP. if you want the encrypted glow-up instead, the -S (--secure) option uses an encrypted TLS connection (https://). more on that option below, because it's a whole thing π
and here's a fun fact: you can get comparable functionality directly from pmlogger via the HTTP-prefixed archive name syntax, which pushes archives remotely while they are actively being written. different energy, same destination β¨
π OPTIONS π
here's every command line option, bestie, no skips:
-h hostname,--host=hostnameβ the hostname of the remotepmproxyserver that's gonna receive your PCP archive.-p port,--port=portβ the internet socket port number where the remotepmproxyserver is listening, waiting to receive the given PCP archive. the default port is44322.-s path,--unix=pathβ the Unix domain socket path where a localpmproxyserver is listening (locally, iykyk) and waiting to receive the given PCP archive.-S,--secureβ use a secure, encrypted TLS connection (https://) to the remotepmproxyserver instead of the default cleartext HTTP. thepmproxyserver must have a TLS certificate configured (seepmproxy(1)), and becausepmproxyauto-detects TLS on its usual port, no separate port is required π. client-side TLS parameters β the certificate authority used to verify the server, and optionally a client certificate and key for mutual authentication β are read from$PCP_TLSCONF_PATH(typically/etc/pcp/tls.conf).pmlogpushalways authenticates the server before sending any archive data: thepmproxycertificate must chain to a certificate authority trusted via$PCP_TLSCONF_PATH(tls-ca-cert-fileortls-ca-cert-dir), and its subject (or a subject alternative name) must match the hostname given with-h. an encrypted but unauthenticated connection is refused, because it would still be open to an active man-in-the-middle π. if TLS support is not available, or the handshake or verification fails,pmlogpushreports an error and exits; it never silently falls back to cleartext. no sneaky downgrades here π-U user,--username=userβ authenticate to the remotepmproxyserver as user using HTTP Basic authentication. this is an alternative to client-certificate (mutual TLS) authentication: it lets eachpmlogpushpresent its own credential without provisioning per-client certificates. the password is not accepted on the command line (that would expose it in the process table π); it's read from the file named by-Por, if that's not given, from the$PCP_PUSH_PASSWORDenvironment variable. and because HTTP Basic credentials are only base64 encoded and not encrypted,-Urequires the-S(secure) option β sending credentials over a cleartext or unauthenticated connection is refused. periodt π₯-P passfile,--password-file=passfileβ read the HTTP Basic authentication password from the first line of passfile (a trailing newline is stripped). only meaningful together with-U. keeping the password in a file, rather than in the environment or on the command line, keeps it out of the process table and shell history β main character privacy behavior π-v,--verboseβ increase the diagnostic information reported aspmlogpushruns.-?,--helpβ display usage message and exit.-V,--versionβ display version number and exit.
π FILES π
$PCP_TLSCONF_PATHβ client-side TLS configuration (certificate authority, and optionally a client certificate and key), used when the-Soption requests a secure connection. typically/etc/pcp/tls.conf.$PCP_LOG_DIR/pmproxy/<hostname>β the default directory for pushed PCP archives created (remotely) by the receivingpmproxyserver. the hostname is extracted from the given archive, as is the recording start time β together these properties are used to name the pushed archive on the receiving end (i.e. by thepmproxyserver). so cute, it names itself π¦
π PCP ENVIRONMENT π
environment variables with the prefix PCP_ are used to parameterize the file and directory names used by PCP. on each installation, the file /etc/pcp.conf contains the local values for these variables. the $PCP_CONF variable may be used to specify an alternative configuration file, as described in pcp.conf(5).
and also! when -U is used without -P, the HTTP Basic authentication password is taken from the $PCP_PUSH_PASSWORD environment variable. π
π DEBUGGING OPTIONS π
the -D or --debug option enables the output of additional diagnostics on stderr to help triage problems, although ngl the information is sometimes cryptic and primarily intended to provide guidance for developers rather than for end-users. debug is a comma separated list of debugging options; use pmdbg(1) with the -l option to obtain a list of the available debugging options and their meaning. the http debugging option is of particular interest for this utility. π
π SEE ALSO π
PCPIntro(1), pmlogger(1), pmproxy(1), PMWEBAPI(3), pcp.conf(5) and pcp.env(5).
and that's the whole page, bestie π this one came from Performance Co-Pilot under the PCP umbrella, and you were reading PMLOGPUSH(1). go push something iconic πβ¨π¦
π¦ where this page comes from
- arch rolling: pcp 7.2.2-2 Β· GPL-2.0-or-later AND LGPL-2.1-or-later AND CC-BY-3.0
- fedora 43: pcp-doc 7.2.2-1.fc43
- fedora 43: pcp-doc 7.2.2-2.fc43 Β· GPL-2.0-or-later AND CC-BY-3.0
- fedora 44: pcp-doc 7.2.2-1.fc44
- fedora 44: pcp-doc 7.2.2-2.fc44 Β· GPL-2.0-or-later AND CC-BY-3.0
- Copyright (c) 2025 Red Hat, Inc. All Rights Reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms