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