durep(1) disk usage report generator




durep creates disk usage reports with bar graphs, allowing one to easily deduce which directories are using the most space. Although durep can produce text output similar to du, its real power lies in the ability to store reports in a file, which can then be viewed as a web page with the supplied cgi script.


Options are grouped into three distinct sections.

Text Output Options

These options are for controlling the text report output.
-td, --text-depth=N
Limit text report on directories to depth N. No directories below this level will be shown in the report.
-hs, --hide-size=N[bkmg]
Do not display entries using N Bytes/KB/MB/GB or less (default Bytes). This is to reduce clutter in the reports. It allows you to remove small files from the text report.
-sd, --show-date
Display the modification date of the file or directory in the report.
-ns, --nosort
Do not sort results by size. Leaves results in the order in which they were scanned, which is highly dependent on the file system.
-q, --quiet
Do not produce text output. This stops the creation of a text report, and is useful when you are only interested in generating a save-file for use with the web report.

File Options

These options control load and save files.
-sf, --save-file=FILE
Save the results of the scan into this file. This can be loaded for a text report, but is generally used by the cgi script to display web reports. The filename should end in .ds (it is appended if it does not).
-lf, --load-file=FILE
Load the results of a scan from this file. This takes the place of scanning a directory. Inclusion options (described below) will not take effect if this option is used.
-d, --desc=DESCRIPTION
Give a description to be stored in the save-file. This is displayed on the web report summary page.
-c, --collate==DIR
Collate the save-files in the given directory. This creates a durep.cds file, which is used by the cgi script to manage and display save-files. See Web Reports section below for more detail.

Inclusion Options

These options control which directories and files should be included in the report.
-f, --files
Do not descend into sub-directories, only report files.
-x, --one-file-system
Do not traverse file systems. This is similar to the -x option for du, allowing easy checking of an entire file system such as /.
-cp, --collapse-path=PATTERN
Hide entries below paths that match PATTERN. This allows you to conceal the contents of certain directories in the report. You may wish perhaps to show home directories in a report but not show their content in which case you could use the option "-cp '/home'".
-ep, --exclude-path=PATTERN
Ignore paths that match PATTERN. This works in a similar manner to "-cp" above, except it excludes the directory from the scan itself.
-cf, --coalesce-files==N[bkmg]
Coalesces entries for files below the given size into one entry. This is useful for reducing clutter in reports.


Since version 0.9, durep no longer directly generates html files for its web reports. It now uses a cgi script that reads data from save-files. The script will handle multiple save-files, potentially from multiple hosts, so you can consolidate your reports into one place. Copying save-files from other hosts is left as an exercise for the reader.

It is necessary to collate the save-files before viewing them via the cgi script. This process creates the file "durep.cds" which contains meta-data about all of the save-files. From this a summary page is shown where you can choose which report you wish to view. The collation must be done any time a save-file is added or overwritten.

The cgi-script has some configurable variables at the top. These tell the script where to look for the css file and the graphic used for the bar graphs. There are also options to set whether the modification date, and/or the options used to create the save-file should be shown. These are both set to 1 by default.

As always, you should take care when installing the cgi script. I've done my best, but I make no guarantees about its security. It would probably be unwise to allow this script to be accessed from the Internet at large.


durep -td 2

This would print the directory tree starting from the current directory to depth 2.

durep -f /var/spool/mail

This might be useful for keeping a check on the mail directory. The "-f" switch tells durep to just scan files and not descend into directories.

durep -x -cp ``/(etc|usr/share)'' -ep ``/var'' -sf /var/lib/durep/root.ds /

This more complicated version does the following. It scans the root file system only, collapses the contents of any paths beginning /etc or /usr/share and skips the contents of the /var directory. It saves the output of this report into the file /var/lib/durep/root.ds. No text report is produced.

durep -lf /var/lib/durep/root.ds -hs 1m

This reads the save-file /var/lib/durep/root.ds and produces a text report from it, hiding any files below 1 megabyte.

durep -c /var/lib/durep

This collates any save-files in /var/lib/durep.


Damian Kramer <[email protected]>