---
name: "ac"
section: "8"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/ac/8"
---

# ac(8)

connect time accounting

## NAME

**ac** – connect time accounting

## SYNOPSIS

**ac** \[**-dp**\] \[**-t** *tty*\] \[**-w** *wtmp*\] \[*user* *...*\]

## DESCRIPTION

If the file */var/log/wtmp* exists, a record of individual login and logout times are written to it by [login(1)](/login/1.md) and [init(8)](/init/8.md), respectively. **ac** examines these records and writes the accumulated connect time for all logins to the standard output.

The options are as follows:

- **-d**

  Display the connect times in 24 hour chunks.

- **-p**

  Print individual users' totals.

- **-t** *tty*

  Only do accounting logins on certain ttys. The *tty* specification can start with ‘!’ to indicate not this *tty* and end with ‘\*’ to indicate all similarly named ttys. Multiple **-t** flags may be specified.

- **-w** *wtmp*

  Read connect time data from *wtmp* instead of the default file, */var/log/wtmp*.

- *user* *...*

  Display totals for the given individuals only.

If no arguments are given, **ac** displays the total connect time for all accounts with login sessions recorded in [wtmp(5)](/wtmp/5.md).

The default *wtmp* file will increase without bound unless it is truncated. It is normally truncated by [newsyslog(8)](/newsyslog/8.md), which renames and rotates the *wtmp* files every week. In order for **ac** to run in sync with the rotation of *wtmp*, [newsyslog(8)](/newsyslog/8.md) is configured to run just after **ac** completes.

User accounting information can be mailed weekly to the system administrator: see weekly(8) for more information. No login or connect time accounting is performed if */var/log/wtmp* does not exist.

## FILES

- */var/log/wtmp*

  connect time accounting file

- */var/log/wtmp.\[0-7\]*

  rotated files

## EXIT STATUS

The **ac** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

Allow times recorded in *modems* to be charged out at a different rate than *other*:

```
$ ac -p -t "ttyd*"  modems
$ ac -p -t "!ttyd*"  other
```

## SEE ALSO

[login(1)](/login/1.md), [wtmp(5)](/wtmp/5.md), [cron(8)](/cron/8.md), [init(8)](/init/8.md), [newsyslog(8)](/newsyslog/8.md), [sa(8)](/sa/8.md)

## HISTORY

An **ac** command appeared in Version 5 AT&T UNIX. This version of **ac** was written for NetBSD 0.9a from the specification provided by various systems' manual pages.
