---
name: "sar2pcp"
section: "1"
platform: "linux"
package: "pcp"
version: "7.2.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/sar2pcp"
---

# sar2pcp(1)

import sar data and create a PCP archive

## NAME

**sar2pcp** - import sar data and create a PCP archive

## SYNOPSIS

**sar2pcp** *infile* *outfile*

## DESCRIPTION

**sar2pcp** is intended to read a binary System Activity Reporting (sar) data file as created by **sadc**(1) (*infile*) and translate this into a Performance Co-Pilot (PCP) archive with the basename *outfile*.

However, if *infile* has the suffix \`\`.xml'', then it will be considered already in XML format and **sar2pcp** will operate directly on it.

The resultant PCP achive may be used with all the PCP client tools to graph subsets of the data using [**pmchart**(1)](/pmchart/1.md), perform data reduction and reporting, filter with the PCP inference engine [**pmie**(1)](/pmie/1.md), etc.

A series of physical files will be created with the prefix *outfile*. These are *outfile***.0** (the performance data), *outfile***.meta** (the metadata that describes the performance data) and *outfile***.index** (a temporal index to improve efficiency of replay operations for the archive). If any of these files exists already, then **sar2pcp** will **not** overwrite them and will exit with an error message of the form

\_&\_\_pmLogNewFile: \`\`blah.0'' already exists, not over-written

**sar2pcp** is a Perl script that uses the PCP::LogImport Perl wrapper around the PCP *libpcp\_import* library, and as such could be used as an example to develop new tools to import other types of performance data and create PCP archives. A Python wrapper module is also available.

## NOTES

As of **sysstat** version 12.0.5, **sadc**(1) has added functionality to directly write PCP archive files. To produce archive files from sar run:

```
$ sadf -l -O pcparchive=ARCHIVE_NAME sar.dat -- -A
```

## CAVEATS

When not using the XML input option, **sar2pcp** requires *infile* to have been created by a version of **sadc**(1) from **http://sebastien.godard.pagesperso-orange.fr/** which includes the [**sadf**(1)](/sadf/1.md) utility to translate *infile* into an XML stream (any since version 6); **sar2pcp** will automatically run [**sadf**(1)](/sadf/1.md) and translate the resultant XML into a PCP archive.

When using binary **sadc** files it is important to ensure the installed **sadf** is compatible with the version of **sadc** that originally generated the binary files. Simply assuming a newer installed version will work is unfortunately far too optimistic, and nor should one assume that binary data from different platforms (e.g. different endianness) will work - these issues are due to limitations in **sadc** and **sadf**, and not in **sar2pcp** itself.

Fortunately, the **sadf** message indicating that an incompatibility has been detected is consistent across versions, and is always prefixed

Invalid system activity file

Using an XML *infile* has the advantage that the installed version of **sadf** is completely bypassed. **sar2pcp** undertakes to transform any valid XML produced by any of the different variations of **sadf** into a valid PCP archive. Any version of PCP will be able to interpret the archive files produced by any version of **sar2pcp**, and you are also free to move the binary PCP archive between different platforms, different hardware, even different operating systems - it Just Works (TM).

## 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)](/pcp.conf/5.md).

For environment variables affecting PCP tools, see [**pmGetOptions**(3)](/pmGetOptions/3.md).

## SEE ALSO

[**pmie**(1)](/pmie/1.md), [**pmchart**(1)](/pmchart/1.md), [**pmlogger**(1)](/pmlogger/1.md), [**pmlogextract**(1)](/pmlogextract/1.md), [**pmlogsummary**(1)](/pmlogsummary/1.md), **sadc**(1), [**sadf**(1)](/sadf/1.md), [**sar**(1)](/sar/1.md), [**Date::Parse**(3pm)](/Date::Parse/3pm.md), [**Date::Format**(3pm)](/Date::Format/3pm.md), [**PCP::LogImport**(3pm)](/PCP::LogImport/3pm.md), [**XML::TokeParser**(3pm)](/XML::TokeParser/3pm.md) and [**LOGIMPORT**(3)](/LOGIMPORT/3.md).
