1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>multiCD</title>
</head>
<body>
<h1 align=center>multiCD</h1>
<h2> Introduction </h2>
<p> 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 <code>du</code> command
on a bunch of directories to see what would fit on which CD. This was very
tedious and time consuming, so I wrote <em>multiCD</em> to do this work for me.
<h2> Description </h2>
<p> <em>multiCD</em> 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:
<p><em>multiCD</em> can run in an interactive or non-interactive mode.
<ul>
<li> Interactive mode assumes that you will be burning more than one disc. You tell
<em>multiCD</em> which files to backup, and it will prompt you to
insert a disc each time it is ready to burn one.
<li> Non-interactive mode copies the files to an image file, and then
burns just a single CD. It assumes you have left a CD in your burner. This is
useful if you want to call <em>multiCD</em> from a script or a cron
job.
</ul>
<p><em>multiCD</em> 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
<code>stderr</code>
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:<br>
<code>multiCD 2> err</code><br>
and then in another terminal I do:<br>
<code>tail -f err</code><br>
so that I can watch the progress of cdrecord.<br>
<p> Selecting which files to backup is simple and powerful. For
example, you can tell it to backup <code>/</code> (everything), but have it
exclude certain sub directories like <code>/tmp /dev /mnt /usr/tmp
/proc</code>, 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.
<p> Options like the type of file system to create, or the capacity of
the CD's to burn can be changed.
<br>
<p> <em>multiCD</em> 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.
<br>
<p> This was developed on Linux, but should run fine on any <em>Unix-like</em>
system.
<h2> Configuration </h2>
<p> The documentation in the global config file
in <code>/etc/multiCDrc</code> explains all of the options
that are available. <em>multiCD</em> can get configuration information
from any of three places: <ul> <li> The global configuration file:
<code>/etc/multiCDrc</code> <li> A per-user configuration file called
<code>.multiCDrc</code>, located in the user's home directory. <li>
From the command line. </ul> Values are read from all three of these
locations. If the same value is specified in more than one location,
then values from the <code>~/.multiCDrc</code> will override values from
the global file, and command line options will override both of the
other two.
<h2> Requirements </h2>
<ul>
<li> A <em>Unix-like</em> operating system.
<li> The <a href="http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html">cdrecord program</a>.
<li> <a href="http://www.perl.com/">Perl 5 or better</a>.
</ul>
<h2> News </h2>
<a name=change_log>
<ul>
<li> 5/5/01: Version 1.5 released. The only thing I want to add, but
haven't yet, is support for <code>ISO9660</code> file systems. If anyone knows of a
way to create an empty <code>ISO9660</code> file system of a certain
size, then please let me know.
<p> I've decide that having incremental backup capability probably
isn't worthwhile for <code>mutliCD</code>. 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. <br>
Changes made:
<ul>
<li> Added support for global configuration file.
<li> Does a little check to make sure that it doesn't attempt to
add a file that's larger than a CD to the backup image.
<li> Finally got around to making the
<a href="http://www.fsf.org/copyleft/gpl.txt">GPL</a> status official.
</ul>
<li> 4/20/01: Still alive. Sort of.
I've been crazy busy at school. I do plan to work on this project
a little more, and do some of the things I said I would, but I
just haven't had the time. I'm graduating soon, so we'll see what
happens...
<li> 2/7/01: Version 1.02 released. Changes made:
<ul>
<li> Fixed minor bugs, changed some minor features, made some
things easier to use.
<li> Made the first steps toward having the ability to do
incremental backups. Incremental backup ability will be in the
next release. See the info about the addfiles option in the
sample config file.
</ul>
<li> 1/21/01: Version 1.01 released. Changes made:
<ul>
<li> Fixed one major bug: It only worked with Perl version 5.6 or
newer. I made <em>multiCD</em> so it is now compatible with
any version of Perl 5.
<li> Fixed some minor bugs.
<li> Changed the way the user specifies the name/location of image
files.
<li> Added option that allows user to create a series of disc
images without burning any of them.
<li> Added option so the user can skip being prompted for the
first disc.
</ul>
<li> 1/15/01: Version 1.0 released.
</ul>
<h2>License</h2>
<code>multiCD</code> is copyright © 2001 by
<a href="mailto:djb4@cs.geneseo.edu">Daniel Born</a>
and is released under the
<a href="http://www.fsf.org/copyleft/gpl.txt">GNU General Public License Version 2.</a>
<h2> The Author </h2>
<p> 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.
<ul>
<li>email: <a href="mailto:djb4@cs.geneseo.edu">djb4@cs.geneseo.edu</a><br>
<li>web page: <a href="http://multicd.rmdashrf.org/">http://multicd, rmdashrf.org/~dan/</a>
</ul>
</body>
</html>
|