pdumpfs: a daily backup system similar to Plan9's dumpfs

Last Modified: 2004-12-20 (Since: 2001-02-18)


What's pdumpfs?

pdumpfs is a simple daily backup system similar to Plan9's dumpfs which preserves every daily snapshot. pdumpfs is written in Ruby. You can access the past snapshots at any time for retrieving a certain day's file. Let's backup your home directory with pdumpfs!

pdumpfs constructs the snapshot YYYY/MM/DD in the destination directory. All source files are copied to the snapshot directory for the first time. On and after the second time, pdumpfs copies only updated or newly created files and stores unchanged files as hard links to the files of the previous day's snapshot for saving a disk space.

What's New

Windows GUI

[screenshot]

This is a screenshot of pdumpfs working on Windows XP.

Requirements

Installation

To install pdumpfs from the source code, unpack the package and run make and copy the resulting pdumpfs file to your bin directory such as /usr/local/bin.

Usage

Command Line

   % pdumpfs <source directory> <destination directory>

Example

To backup your home directory /home/yourname to /backup, run the following command.

   % pdumpfs /home/yourname /backup >/backup/log 2>/backup/error-log

On and after the second day, it is a good idea to invoke the backup command with cron daemon. The following setting allows you to backup your home directory every 5 a.m.

    00 05 * * * pdumpfs /home/yourname /backup >/backup/log 2>/backup/error-log

If the backup system works well, you can retrieve a certain day's file with a file name like /backup/2001/02/19/yourname/...

Excluding Files

To exclude particular files from a backup, you can use the following options.

--exclude=PATTERN
Exclude files or directories matching PATTERN (Regular Expressions in Ruby) from a backup. You can specify the option as many you like. The pattern matching is performed for paths of source files. If the `source directory' given by the command line is a relative path, pattern matching is performed for relative paths including the given path itself. If the `source directory' is an absolute path, pattern matching is performed for absolute paths.
--exclude-by-size=SIZE
Exclude files larger than SIZE from a backup. You can specify SIZE like 100, 100K, 10M, and 1G.
--exclude-by-glob=GLOB
Exclude files matching GLOB from a backup. fnmatch(3) (shell globbing) to the basename of a file is used for matching. You can specify the option as many you like.

Examples

# Exclude files and directories matching "spool" or "log" from a backup.
% pdumpfs --exclude 'spool|log' /var /mnt/backup

# Exclude files larger than 10MB from a backup.
% pdumpfs --exclude-by-size 10M ~/ /mnt/backup

# Exclude wave files (*.wav) from a backup.
% pdumpfs --exclude-by-glob "*.wav" ~/ /mnt/backup

Limitation

Tips

Download

pdumpfs is a free software with ABSOLUTELY NO WARRANTY under the terms of the GNU General Public License version 2.

Links


Satoru Takabayashi