130 lines
5.4 KiB
Diff
130 lines
5.4 KiB
Diff
Common subdirectories: flexbackup-1.2.1-r3/contrib and flexbackup-1.2.1-r4/contrib
|
|
diff -ubB flexbackup-1.2.1-r3/flexbackup flexbackup-1.2.1-r4/flexbackup
|
|
--- flexbackup-1.2.1-r3/flexbackup 2007-04-14 17:03:34.000000000 -0400
|
|
+++ flexbackup-1.2.1-r4/flexbackup 2007-04-14 17:09:48.000000000 -0400
|
|
@@ -442,7 +442,7 @@
|
|
# Get rid of trailing /
|
|
$dir = &nuke_trailing_slash($dir);
|
|
|
|
- # If level is icremental for the set, each dir might
|
|
+ # If level is incremental for the set, each dir might
|
|
# have a different numeric level
|
|
if (!defined($::set_incremental)) {
|
|
$level = $::level;
|
|
@@ -3090,7 +3090,7 @@
|
|
push(@::remoteprogs, $::path{'mbuffer'});
|
|
|
|
my $megs = $cfg::buffer_megs . "M";
|
|
- my $bufcmd = "$::path{mbuffer} -q -m $megs -p $cfg::buffer_fill_pct $mbuffer_blk_flag ";
|
|
+ my $bufcmd = "$::path{mbuffer} -q -m $megs -P $cfg::buffer_fill_pct $mbuffer_blk_flag ";
|
|
|
|
$::buffer_cmd = " | $bufcmd";
|
|
$::write_cmd = "$bufcmd -f -o ";
|
|
@@ -4884,18 +4884,24 @@
|
|
}
|
|
|
|
if (defined(%{$::prune{$prunekey}})) {
|
|
+ my $rex;
|
|
# FreeBSD needs -E (above) and no backslashes around the (|) chars
|
|
if ($::uname =~ /FreeBSD/) {
|
|
- $cmd .= '-regex "\./(';
|
|
- $cmd .= join('|', keys %{$::prune{$prunekey}});
|
|
- $cmd .= ')/.*" ';
|
|
- } else {
|
|
- $cmd .= '-regex "\./\(';
|
|
- $cmd .= join('\|', keys %{$::prune{$prunekey}});
|
|
- $cmd .= '\)/.*" ';
|
|
- }
|
|
+ $rex = '-regex "\./(';
|
|
+ $rex .= join('|', keys %{$::prune{$prunekey}});
|
|
+ $rex .= ')/.*" ';
|
|
+ } else {
|
|
+ $rex = '-regex "\./\(';
|
|
+ $rex .= join('\|', keys %{$::prune{$prunekey}});
|
|
+ $rex .= '\)/.*" ';
|
|
+ }
|
|
+ # Show what the darn thing is constructing for prune expressions.
|
|
+ &log("| \"find\" regex for pruning is: $rex");
|
|
+ $cmd .= $rex;
|
|
$cmd .= '-prune -o ';
|
|
} else {
|
|
+ # Show what the darn thing is constructing for prune expressions.
|
|
+ &log("| No pruning defined for this tree.");
|
|
# Can't use find -depth with -prune (see single unix spec etc)
|
|
# (not toally required anyway, only if you are archiving dirs you
|
|
# don't have permissions on and are running as non-root)
|
|
diff -ubB flexbackup-1.2.1-r3/flexbackup.conf flexbackup-1.2.1-r4/flexbackup.conf
|
|
--- flexbackup-1.2.1-r3/flexbackup.conf 2007-04-14 17:03:35.000000000 -0400
|
|
+++ flexbackup-1.2.1-r4/flexbackup.conf 2007-04-14 17:09:48.000000000 -0400
|
|
@@ -30,6 +30,45 @@
|
|
# A space-separated list of directories to prune from each backup.
|
|
# Key is a filesystem or host:dir spec as outlined above
|
|
# regular expressions allowed (not shell-type wildcards!)
|
|
+#
|
|
+# Note: These directories are actually regular expressions and must
|
|
+# match "find" output relative to the path of the current backup set. This
|
|
+# means that different exclusions are needed for different backup sets.
|
|
+# This is a little tricky, so, read on.
|
|
+#
|
|
+# The regular expressions are processed by "find" but, before "find" is run,
|
|
+# FlexBackup changes into the base directory of the backup set in progress.
|
|
+# FlexBackup then runs "find" with a path of "." which means all output lines
|
|
+# start with "./". To be helpful, FlexBackup packages each space-separated
|
|
+# prune directory as follows. If you have a prune list like this
|
|
+#
|
|
+# $prune{'/somedir'} = "one two three";
|
|
+#
|
|
+# then, the constructed -regex argument to "find" looks like this
|
|
+#
|
|
+# -regex "\./\(one\|two\|three\)/.*"
|
|
+#
|
|
+# The last thing you need to know is that FlexBackup only uses the prune
|
|
+# terms that match the current base directory in the set you're backing
|
|
+# up. For example, if your backup set definition looks like this
|
|
+#
|
|
+# $set{'daily'} = "/home /root /var /usr";
|
|
+#
|
|
+# and you want to do some exclusions in "/home" and "/var" (but not the other
|
|
+# directories), you must set up a prune list for those two directories
|
|
+# separately. For example, to exclude bert's and ernie's home directories plus
|
|
+# /var/tmp, you would need the following:
|
|
+#
|
|
+# $prune{'/home'} = "bert ernie";
|
|
+# $prune{'/var'} = "tmp";
|
|
+#
|
|
+# In particular, combining these *does not* work. For example, this
|
|
+#
|
|
+# $prune{'/'} = "home/bert home/ernie var/tmp";
|
|
+#
|
|
+# does not work, unless, of course, your backup set is backing up "/",
|
|
+# which our example is not.
|
|
+#
|
|
$prune{'/'} = "tmp proc";
|
|
|
|
# Compression
|
|
@@ -84,7 +123,8 @@
|
|
# True to try and preserve file access times during backup, if the selected
|
|
# archive program can do so. Note that if this is true, -cnewer checks (file
|
|
# permission/status changes only, not content) are turned off when deciding
|
|
-# which files to archive on the local system.
|
|
+# which files to archive on the local system. This is because preserving the
|
|
+# access time changes the permission/status change time in the filesystem.
|
|
$atime_preserve = 'false';
|
|
|
|
# Span across filesytems? ("dump" will ignore this option)
|
|
@@ -97,8 +137,13 @@
|
|
# leading directories (the filesystem specs above or the "-dir" flag).
|
|
# Matches paths, not filenames, so put .* on the front/back as needed.
|
|
# Comment these out to exclude nothing.
|
|
-$exclude_expr[0] = '.*/[Cc]ache/.*';
|
|
-$exclude_expr[1] = '.*~$';
|
|
+#
|
|
+# Note: The first example line breaks portage in a restored backup because
|
|
+# "/usr/lib/portage/pym/cache" is not backed up. Way too general! The moral
|
|
+# of this story is, be very careful with global excludes. The second example
|
|
+# is probably okay.
|
|
+# $exclude_expr[0] = '.*/[Cc]ache/.*';
|
|
+# $exclude_expr[1] = '.*~$';
|
|
|
|
# If true (default), and using a tape device, level zero "set" backups
|
|
# assume you want to erase and use a new tape for each set. If false, level
|