From 0fa1debfd6857edf7298a2478d7c877b29645ff3 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Fri, 24 Jun 2011 20:15:49 +0200 Subject: add rsync-scp.sh Signed-off-by: Florian Pritz --- rsyncd-scp.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 rsyncd-scp.sh (limited to 'rsyncd-scp.sh') diff --git a/rsyncd-scp.sh b/rsyncd-scp.sh new file mode 100755 index 0000000..de54a8e --- /dev/null +++ b/rsyncd-scp.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +set -e + +host=${1%%:*} +path=${1#*:} +dst=$2 + +if [[ -z $1 || -z $2 ]]; then + echo "${0%%*/}: " + exit 0 +fi + +while :; do + port=$RANDOM + [[ $port -gt 1024 && $port -lt 65535 ]] && break +done + +rm_tmpdir=$(ssh $host 'mktemp -d /tmp/rsyncd-scp.XXXXXX') + +cleanup() { + ssh $host "kill \`<'$rm_tmpdir/pid'\`" &>/dev/null || true + ssh $host "rm -rf $rm_tmpdir" +} + +trap cleanup EXIT INT TERM + +ssh $host 'cat <'"$rm_tmpdir"'/rsyncd.conf +max connections = 1 +pid file = '"$rm_tmpdir"'/pid +lock file = '"$rm_tmpdir"'/lock +use chroot = no +log file = /dev/null +port = '$port' +[share] + path = '"$path"' +EOF +rsync --daemon --config='"$rm_tmpdir"'/rsyncd.conf; +' + +rsync --progress --port $port "rsync://$host/share/" -rt "$dst" + -- cgit v1.2.3-24-g4f1b