Aw: Re: rsync remote raw block device with --inplace

Steve Newcomb srn3333 at gmail.com
Mon Dec 31 19:03:10 UTC 2018


These responses have been very useful.  Thanks especially to *Roland*  devzero
at web.de
<rsync%40lists.samba.org?Subject=Re%3A%20Aw%3A%20Re%3A%20rsync%20remote%20raw%20block%20device%20with%20--inplace&In-Reply-To=%3Ctrinity-177d08a5-29f5-475c-916b-85273fc31962-1546203055586%403c-app-webde-bs15%3E>because...I'm
installing diskrsync <https://github.com/dop251/diskrsync> .  So far it
looks like it pretty much works.  It's written in Go, which I hadn't used
before.  There was a bit of a learning curve there, but I attached the
script I used to install it, which is a github-wiki script contributed by
"udif" which I have refined in minor respects.  (Attached.)

I still think this is a reasonable feature for rsync to have, but at least
there appears to be a reasonable solution -- diskrsync -- and I didn't know
about it before.

On Debian Buster/Sid and Debian 9, the following procedure worked, and it
will probably work on Ubuntu and other Debian derivatives.

Note: Be sure to install on both the source and target hosts! If diskrsync
is not found on the remote server, this message appears:

bash: /usr/local/ch-tools3/diskrsync: No such file or directory

Install procedure:

(1) sudo apt-get install golang

(2) As root (if necessary) put the following script in
dir-in-PATH/install_diskrsync.txt (below script contains minor refinements
of udif's script, above).

install_diskrsync.txt
<https://github.com/dop251/diskrsync/files/2718788/install_diskrsync.txt>

(3) sudo chmod +x dir-in-PATH/install_diskrsync.txt

(4) sudo dir-in-PATH/install_diskrsync.txt

Steve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/rsync/attachments/20181231/36a9aec4/attachment.html>
-------------- next part --------------
#!/bin/bash
echo
echo '## '
echo '## installing/updating diskrsync'
echo '## '
echo
set -x

## customize below lines
export GOPATH="/usr/local/ch-static/GO"  ## wherever you keep your go projects
export EXECDIR="/usr/local/ch-tools3"  ## where the executable diskrsync command will be put
## customize above lines

export GOBIN="$GOPATH/bin"
export GOROOT="`go env GOROOT`"
export PATH="$PATH:$GOROOT/bin:$GOBIN"
mkdir -p ${GOPATH}/{bin,src,pkg}
mkdir -p ${GOPATH}/src/github.com/dop251

cd ${GOPATH}/src/github.com/dop251

if [ -d diskrsync ] ; then
    cd diskrsync
    git pull
    cd ..
else
    git clone https://github.com/dop251/diskrsync.git diskrsync
fi
go get -v github.com/dop251/diskrsync
go build -v github.com/dop251/diskrsync
go install -v github.com/dop251/diskrsync/diskrsync
cp -p ${GOPATH}/bin/diskrsync "$EXECDIR"

set +x
echo
echo '## '
echo '## finished installing/updating diskrsync'
echo '## '
echo


More information about the rsync mailing list