Package: rsync
Version: 3.0.7-2
Severity: normal

Hi,

With experience, I noticed several time that rsync is not robust. (Trust me).

If you take a pendrive for instance, it can do not like rsync -avr ... 
if you take weird partition and format of files, or lengths... rsync can miss 
some files , and cp -r -u is really much much much more robust.

OK. it is not the point to make rsync better, since it is likely to be tested 
with all kind of partition format (vfat, ext3, ...) and filenames, dir 
depths,...

I would recommend you cp -r -u, it is much more performant, .. ok, but 
sometimes we really need to use rsync 
what to do? how to verify?

I would propose to add a switch to verifiy that rsync copy well. We deal here 
about gb or tb or servers of data, so rsync shall not be a joke by the end



here an example of script:


#!/bin/sh
# /usr/bin/ducompare
# basic minimalistic rsync code checker 
# coded by frenchn00b

CURRENTDIR=`  pwd ` 

DIRSRC="$1"
DIRTRGT="$2"

if [ ! -d  "$DIRSRC"  ]  ||  [ ! -d  "$DIRTRGT"  ] ; then 
        echo "Not directories"
        echo "Exit" 
        exit
fi 


DIRSRCSTR=` basename "$DIRSRC" `
DIRTRGTSTR=` basename   "$DIRTRGT" `

if [ "$3" != "-checksrc" ]  &&  [ "$3" != "-checksrcs" ]  ; then 
#echo " $DIRSRC         $DIRTRGT"
#printf "__STAT_"
printf  "%*s" 15 "Stat"
printf  "%*s" 15 "$DIRSRC"
printf "\t"
printf  "%*s" 15 "$DIRTRGT"  
printf "\n"


ls -1  "$DIRSRC"  | while read -r i ; do 
        SIZEDIRSOURCE=` du -hs --apparent-size  "$DIRSRC/${i}" | cut -f 1 `
        if [  -d  "$DIRTRGT/${i}" ] ; then 
                SIZEDIRTARGET=` du -hs --apparent-size "$DIRTRGT/${i}" | cut -f 
1 `
                else
                SIZEDIRTARGET="not found"
        fi
        
        if [ "$SIZEDIRSOURCE" = "$SIZEDIRTARGET"  ] ; then 
                TESTVAL="OK"
                else
                TESTVAL="NOT_OK"
        fi      
        #printf "$TESTVAL"  
        #printf "\t"
        printf  "%*s" 15 "$TESTVAL"
        printf  "%*s" 15 "$SIZEDIRSOURCE"
        printf "\t"
        printf  "%*s" 15 "$SIZEDIRTARGET"
        printf "\t\t$i"  
        printf "\n"

done
fi



if [ "$3" != "-hide" ]  ; then 
echo "--- Reverse check ---"
#echo "Check the possible target missing directories"
ls -1   "$DIRTRGT"   | while read -r i ; do 
        FILET="$DIRSRC/${i}"
        FILETT="$DIRTRGT/${i}"

        if [ ! -d "$FILET"  ] &&  [ ! -f  "$FILET"   ]  ; then 
                SIZEFOL=""
                SIZEFOLSTRING=""
                if [ "$3" = "-checksrcs" ] ; then
                        SIZEFOL=`du -hs  "$DIRTRGT/${i}" | cut -f 1 `
                        SIZEFOLSTRING="(${SIZEFOL})"
                fi
        printf  "%*s" 15 "SRC NOT OK"
        printf  "%*s" 15 "not found"
        printf "\t"
        printf  "%*s" 15 "$SIZEFOLSTRING"
        printf "\t\t${FILETT}"  
        printf "\n"

        fi
        
done
fi




For the swtich checker, ... creativity ;)
Enjoy Linux
many thanks

-- System Information:
Debian Release: 6.0.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686-bigmem (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages rsync depends on:
ii  base-files              6.0squeeze3      Debian base system miscellaneous f
ii  libacl1                 2.2.49-4         Access control list shared library
ii  libc6                   2.11.2-10        Embedded GNU C Library: Shared lib
ii  libpopt0                1.16-1           lib for parsing cmdline parameters
ii  lsb-base                3.2-23.2squeeze1 Linux Standard Base 3.2 init scrip

rsync recommends no packages.

Versions of packages rsync suggests:
ii  openssh-client        1:5.5p1-6+squeeze1 secure shell (SSH) client, for sec
ii  openssh-server        1:5.5p1-6+squeeze1 secure shell (SSH) server, for sec

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to