TMPWATCH(8)

NAME
tmpwatch - removes files which haven't been accessed for a period of time

SYNOPSIS
tmpwatch [-u|-m|-c] [-MUXadfqstvx] [--verbose] [--force] [--all]
               [--nodirs] [--nosymlinks] [--test] [--fuser] [--quiet]
               [--atime|--mtime|--ctime] [--dirmtime] [--exclude <path>]
               [--exclude-user <user>] [--exclude-pattern <pattern>]
               <hours> <dirs>

DESCRIPTION
tmpwatch recursively removes files which haven't been accessed for a given number of hours. Normally, it's used to clean up directories which are used for temporary holding space such as /tmp. When changing directories, tmpwatch is very sensitive to possible race conditions and will exit with an error if one is detected. It does not follow symbolic links in the directories it's cleaning (even if a symbolic link is given as its argument), will not switch filesystems, skips lost+found directories owned by the root user, and only removes empty directories regular files, and symbolic links. By default, tmpwatch dates files by their atime (access time), not their mtime (modification time). If files aren't being removed when ls -l implies they should be, use ls -u to examine their atime to see if that explains the problem. If the --atime, --ctime or --mtime options are used in combination, the decision about deleting a file will be based on the maximum of these times. The --dirmtime option implies ignoring atime of directories, even if the --atime option is used. The hours parameter defines the threshold for removing files. If the file has not been accessed for hours hours, the file is removed. Following this, one or more directories may be given for tmpwatch to clean up.

OPTIONS

-u, --atime
    Make the decision about deleting a file based on the file's atime (access time). This is the default. Note that the periodic updatedb file system scans keep the atime of directories recent.

-m, --mtime
    Make the decision about deleting a file based on the file's mtime (modification time) instead of the atime.

-c, --ctime
    Make the decision about deleting a file based on the file's ctime (inode change time) instead of the atime; for directories, make the decision based on the mtime.

-M, --dirmtime
    Make the decision about deleting a directory based on the directory's mtime (modification time) instead of the atime; completely ignore atime for directories.

-a, --all
    Remove all file types, not just regular files, symbolic links and directories.

-d, --nodirs
    Do not attempt to remove directories, even if they are empty.

-d, --nosymlinks
    Do not attempt to remove symbolic links.

-f, --force
    Remove files even if root doesn't have write access (akin to rm -f).

-q, --quiet
    Report only fatal errors.

-s, --fuser
    Attempt to use the "fuser" command to see if a file is already open before removing it. Not enabled by default. Does help in some circumstances, but not all. Dependent on fuser being installed in /sbin. Not supported on HP-UX or Solaris.

-t, --test
    Don't remove files, but go through the motions of removing them. This implies -v.

-U, --exclude-user=user
    Don't remove files owned by user, which can be an user name or numeric user ID.

-v, --verbose
    Print a verbose display. Two levels of verboseness are available -- use this option twice to get the most verbose output.

-x, --exclude=path
    Skip path; if path is a directory, all files contained in it are skipped too. If path does not exist, it must be an absolute path that contains no symbolic links.

-X, --exclude-pattern=pattern
    Skip paths matching pattern; if a directory matches pattern, all files contained in it are skipped too. pattern must match an absolute path that contains no symbolic links.

SEE ALSO
cron(1), ls(1), rm(1), fuser(1)

WARNINGS
GNU-style long options are not supported on HP-UX.

AUTHORS
Erik Troan <ewt@redhat.com>
Preston Brown <pbrown@redhat.com>
Nalin Dahyabhai <nalin@redhat.com>
Miloslav Trmac <mitr@redhat.com>