#! /bin/sh cd $(dirname $0)/site # clear out garbage find . -name '*~' | xargs rm # what do we want to sync? sync=$(ls | grep -v perllib | grep -v \\.xoops_) # what do we not want to prune remotely? remote_keep="*.ttc *.xoops_*" remote_keep=$(for x in $remote_keep; do echo "--exclude=$x"; done) # sync. rsync -avz "$@" --delete -e 'ssh -l myuser' $remote_keep $sync myhost.com: #### #!/usr/bin/perl use File::Spec; use FindBin; # make sure we're in the right directory. chdir File::Spec->catdir($FindBin::Bin, 'site'); # clear out garbage. use File::Find; find( sub { /~$/ and unlink }, '.'); # directories we want to sync... my @sync = grep { -d $_ and !/perllib/ and !/\.xoops_/ } glob '*'; # remote directories we don't want to prune... my @remote_keep = map { '--exclude=' . $_ } qw(*.ttc *.xoops_*); # sync... system(#qw(/bin/echo), qw(/usr/bin/rsync -avz), @ARGV, qw(--delete -e), 'ssh -l myuser', @remote_keep, @sync, qw(mysite.com:) );