[Bug 1455] Make -x skip a "bind" mount point to the same filesystem
samba-bugs at samba.org
samba-bugs at samba.org
Thu Jun 10 22:10:34 GMT 2004
https://bugzilla.samba.org/show_bug.cgi?id=1455
wayned at samba.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |enhancement
Status|NEW |ASSIGNED
Priority|P3 |P4
Summary|mount --bind is ignored by -|Make -x skip a "bind" mount
|x |point to the same filesystem
------- Additional Comments From wayned at samba.org 2004-06-10 15:10 -------
Since the bla/lib dir is on the same partition as bla, there is no way for the
current rsync algorithm to notice any difference (the stat() call shows no
change because the files dirs are actually on the same filesystem). It might be
possible to do something like transform a mount list into an exclude list, but
only if it could be done portably (e.g. by using getfsent(), getmntent(), or
whatever is available).
In the meantime I've changed this bug to an enhancement request.
Your best bet for a quick fix is to use some explicit excludes. One way is to
use a perl script to automatically create an exclude list from the /proc/mounts
file, like this one (name this "mntexcl"):
#!/usr/bin/perl -w
use strict;
my $start_dir = shift;
$start_dir =~ s#^([^/])#$ENV{'PWD'}/$1#;
my($prefix, $suffix) = $start_dir =~ m#^(.*/)([^/]*)$#;
open(IN, '/proc/mounts') or die $!;
while (<IN>) {
$_ = (split)[1];
next unless s#^\Q$prefix\E##o && $_ ne '';
next if $suffix ne '' && !m#^\Q$suffix\E/#o;
print "/$_\n";
}
close IN;
You could feed this into rsync like this (specifying the starting directory to
mntexcl so that it can properly trim the excludes):
mntexcl /www/ | rsync --exclude-from=- ... /www/ /backup/daily.0/www/
--
Configure bugmail: https://bugzilla.samba.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.
More information about the rsync
mailing list