rsync for solaris seems to be a spotty beast. It's not installed by default. I facing a problem where I didn't have root access to be able install rsync. I did have ssh access and was able to configure the authorized keys so that no password was required to connect from one server to another. What I required was a means of copying the contents of one directory to another directory on another server. Others may find this useful, so here it is:
#/bin/bash
##############################################################
#
# This script is used to copy the contents of /export/home/oracle/reports
# to remoteusr@remoteserver into the directory /export/home/myuser/data/reports
#
#
##############################################################
LOGFILE="/export/home/digi/log/backupscript.log"
DIR="/export/home/oracle/reports"
RSERVER="remoteserver"
RDIR="/export/home/myuser/data/reports"
RUSER="remoteusr"
cd "$DIR"
#####################################################################
#
# Gather a listing of the files from server directory and the remote directory.
# It finds the file differences and copy the files to the destination directory.
# Only missing files are copied. Sub directories are not considered
#####################################################################
for i in `find $DIR -type f`
do
# Strip out the directory garbage leaving only the file name and see if it exists on the remote server
FILE=`echo $i|awk 'BEGIN {FS="/"} {print $6}'`
REMOTEFIND=` ssh $RUSER@$RSERVER "find $RDIR -type f -name $FILE" `
if [ ! -n "$REMOTEFIND" ]
then
# The file does not exist so copy it over.
scp $i $RUSER@$RSERVER:$RDIR
echo -e "copied file $i " >> "$LOGFILE"
fi
done
echo -e "Remote backup `date` SUCCESS\n----------" >> "$LOGFILE"
If I was going for efficiency, I would've loaded the directory contents into an array and done array comparisons...but this quick and dirty solution gets the job done.