---
name: "changetrack"
section: "1"
platform: "linux"
package: "changetrack"
version: "4.7-9"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/changetrack"
---

# changetrack(1)

track changes to files

## NAME

changetrack - track changes to files

## SYNOPSIS

**changetrack** \[-h\] \[-c configfile\] \[-d directory\] \[-e\] \[-r\] \[-q\] \[-m message\] \[-M message\] \[-v\] \[-u\] \[-o toaddress\] \[-f fromaddress\]

## DESCRIPTION

**changetrack** is a program to monitor changes to a bunch of files. If files are   modified one day, and the machine starts working incorrectly some days later, **changetrack** can provide information on which files were modified, and help locate the problem.

Normally **changetrack** uses **ed** to keep track of various revisions of the files by maintaining an *.ed* script with the change history for each file.

Alternatively, **changetrack** can use **rcs** to keep track of various revisions of the files. Each file is "installed" in the  **rcs** system the first time that **changetrack** is run after that file is added to the config file. Whenever  **changetrack** is run after that, a copy of the file is made, which is 'checked in' and implicitly 'checked out' of the  **rcs** system. See the man page of  **co** for information on retrieving an old version of the file.

Backup files (ending in tilde ~) are ignored, unless explicitly included.

After each pattern in the file list, adding white space, a colon (:) then more whitespace, followed by email addresses, separated by more whitespace, will result in the changes to that file being emailed to that address. All changes from each run are expressed in one email. Using the email feature requires Mail::SendMail to be installed; if it does not work correctly, an error message will be printed to standard error.

## OPTIONS

- **-h**

  Display a short help message then exit.

- **-c***configfile*

  Get the list of files to track from *configfile* instead of from ~/.changetrackrc (/etc/changetrack.conf for the super-user)

- **-d***outputdirectory*

  Store output in *outputdirectory* instead of in ~/.changetrack/ (/var/lib/changetrack/ for the super-user)

- **-e**

  Keep a copy of the file from when it was first added to the **changetrack** configuration, and keep **ed** styled changes to rebuild the file. *This option is recommended only if* **rcs** *does not work on the machine.* To recover using this means, the .ed file should have the last several commands removed, to allow the file to be rebuilt to the appropriate state. A command like 'cat myfile.ed \| ed myfile.original' should be executed.

- **-r**

  Disable the  **rcs** facility.

- **-q**

  Quiet mode; only print critical messages. Good for scripts.

- **-m***message*

  Print *message* on each file, after checking for any changes. Good for indicating reboots  or other system events.

- **-M***message*

  Like -m, but message is only printed on modified files.

- **-v**

  Print version and exit.

- **-u**

  Use unified diffs (this only works with some implementations of **diff.**

- **-o***emailaddress*

  Mail output to emailaddress. This is supplementary to emails specified in the config file.

- **-f***emailaddress*

  Set "From" header to emailaddress, which must be fully qualified.

## REQUIREMENTS

This program requires **diff.** Unless the **-r** switch is used, this program requires **rcs** to be installed. If the  **-e** switch is used, **ed** is required.

## FILES

- \~/.changetrackrc

  List of files to monitor. Each line may start with '#' indicating a comment. If a line is not a comment, it contains a file/pattern to monitor, and optionally " : " followed by any email addresses to send changes to. The filename may be a pattern described in the same way as for **ls.** Note: the default is  **/etc/changetrack.conf** for root.

- \~/.changetrack/

  Default directory in which to store output information. The default is **/var/lib/changetrack/** for root. All **rcs** files are stored in this directory, unless a subdirectory called RCS  exists, in which case the **rcs** files are stored in that directory.

- /etc/cron.daily/changetrack

  Script that creates the list of all files monitor.

- /etc/cron.hourly/changetrack

  Script that invocates **changetrack.**

- /etc/default/changetrack

  Configuration for the above two scripts.

## DIAGNOSTICS

Each filename is written to standard output. **rcs** will print errors if certain things go wrong. It will also print a few lines each time **changetrack** is run after a new file is added to the configuration.

## IDENTIFICATION

Author: Cameron J. Morland.\
 Manual Page Revision: 2.1 Release Date: 2001-03-06.\
 Copyright © 2001-2005 Cameron J. Morland.\
 Changed by Jens Peter Secher to reflect the Debian modifications.

## SEE ALSO

[ed(1)](/ed/1.md), [rcsintro(1)](/rcsintro/1.md), [co(1)](/co/1.md)

## TODO

Automate removal of out-of-date changes, to save disk space and clarify the important changes.

## BUGS

None known.
