Matt McCutchen wrote:
On Mon, 2008-01-28 at 15:00 -0800, Randy Dunlap wrote:
Sorry about the missing information. Here's the script,
which still isn't working.
Any help/suggestions would be wonderful.
---
~Randy
#! /bin/sh
# rsync /test/runs/ to $server:~rdunlap/pub/kerneltest/reports/runs/
rsync_one() {
srcdir=$1
dest=$2
destdir=$3
rsync $EXCLUDE -avz -e ssh --progress --delete $srcdir $dest:$destdir/
}
#1
EXCLUDE="--exclude='/?' --exclude='/??' --exclude='/???' --exclude='/1???'"
rsync_one /test/runs/ [EMAIL PROTECTED] pub/kerneltest/reports/runs
# end.
The shell does not strip the single quotes because they are inside
double quotes. Thus, rsync is getting filter patterns containing single
quotes, which would obviously prevent the filters from matching.
You can just remove the single quotes, but then the shell will try to
expand the wildcards when it expands $EXCLUDE. Depending on your
working directory, the expansion may or may not cause a problem. (IMHO,
this shell behavior is weird; I would prefer if the shell expanded only
unquoted literal wildcards and *not* those in the expansions of unquoted
variable references.)
I think the best way to store multiple arguments safely is to use a
shell array. This lets you make a quoted reference to "all the
arguments in the array" without them getting mangled any further. (But
shell arrays may require a relatively modern shell, and they can't be
passed from a process to its children through the environment. See
"Arrays" in the bash man page for more information.) Here is your
script rewritten to use a shell array:
-----
#! /bin/sh
# rsync /test/runs/ to $server:~rdunlap/pub/kerneltest/reports/runs/
set -x
rsync_one() {
srcdir=$1
dest=$2
destdir=$3
rsync "[EMAIL PROTECTED]" -avz -e ssh --progress --delete $srcdir
$dest:$destdir/
}
#1
EXCLUDE=(--exclude='/?' --exclude='/??' --exclude='/???' --exclude='/1???')
rsync_one /test/runs/ [EMAIL PROTECTED] pub/kerneltest/reports/runs
# end.
-----
Matt
Or since rsync also has an '--exclude-from' option, I use here documents
to get around such obstacles.
rsync -avz --delete --stats --exclude-from=- ${source}
${destination} <<END
.snapshot/
.nfs*
core
END
begin:vcard
fn:Matthew Stier
n:Stier;Matthew
org:Fujitsu Network Communications;CAE
adr:Sixth Floor;;Two Blue Hill Plaza;Pearl River;NY;10965;USA
email;internet:[EMAIL PROTECTED]
title:Principal Engineer
tel;work:845-731-2097
tel;fax:845-731-2011
tel;cell:845-893-0575
x-mozilla-html:TRUE
version:2.1
end:vcard
--
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html