I wanted to backup my entire Linux system. I wanted to do it by making
direct copies of the files (no tar, compression, or archiving) so if I just
wanted to look at one of the files on one of the CDs, I could. This also
makes it very easy to restore from backups. Backing up my entire Linux
system takes more than one CD, so I was running the du
command
on a bunch of directories to see what would fit on which CD. This was very
tedious and time consuming, so I wrote multiCD to do this work for me.
multiCD has a fairly large number of options, and can be configured to run in a variety of ways. I'll talk about some of the more interesting features:
multiCD can run in an interactive or non-interactive mode.
multiCD can be configured to run in a
multi-threaded mode. If your machine can handle it, you can burn one CD
image while another image is having the next set of files copied to it.
This option can be disabled on slower machines. Since non-interactive
mode burns only one CD, multi-threading is only used in interactive
mode. When running with this feature enabled, it's best to redirect
stderr
somewhere. I send the output of cdrecord, along with some other status
information, to stderr. When cdrecord is running in the background at the
same time as the main process, their output will overlap. I usually do
something like:
multiCD 2> err
and then in another terminal I do:
tail -f err
so that I can watch the progress of cdrecord.
Selecting which files to backup is simple and powerful. For
example, you can tell it to backup /
(everything), but have it
exclude certain sub directories like /tmp /dev /mnt /usr/tmp
/proc
, etc. It only backs up regular files, directories, and
symlinks. All other files are automatically skipped. Also, if there is a
problem reading a file because of permissions or whatever, it is
automatically skipped. A warning is printed to STDERR whenever a file is
skipped.
Options like the type of file system to create, or the capacity of
the CD's to burn can be changed.
multiCD can be configured to run in a mode where it
simply creates a series of image files, without burning anything to discs.
Some people find this useful if they want to burn the CDs later.
This was developed on Linux, but should run fine on any Unix-like system.
The documentation in the global config file
in /etc/multiCDrc
explains all of the options
that are available. multiCD can get configuration information
from any of three places:
/etc/multiCDrc
.multiCDrc
, located in the user's home directory. ~/.multiCDrc
will override values from
the global file, and command line options will override both of the
other two.
ISO9660
file systems. If anyone knows of a
way to create an empty ISO9660
file system of a certain
size, then please let me know.
I've decide that having incremental backup capability probably
isn't worthwhile for mutliCD
. To do such a thing, all of the old files
would have to be copied from the CD to the image file, all of the
files that aren't in the master file system would have to be deleted
from the image, and then new and modified files would have to be copied
from the master set to the image. Doing all of that would be slower
than just getting a whole new copy of the master set.
Changes made:
multiCD
is copyright © 2001 by
Daniel Born
and is released under the
GNU General Public License Version 2.
If you find this program useful, let me know. If you find a bug, let me know, and I will fix it. Also, if you want a certain feature added, send me an email and I will consider it. My name is Dan Born. Feel free to get in touch with me.