poldek & ssh

Daniel Dawid Majewski light-i at o2.pl
Thu Mar 12 23:55:02 CET 2009


Sobie napisałem skrypt dla poldka do pobierania paczek via ssh z
zainstalowanym kluczem. Jest w załączniku, działa ale bez wskazania
postępu. Uwagi mile widziane, jeśli ktoś ma chęć, to może coś poprawić i
włączyć do paczki z poldkiem... ;)
-- 
Pozdrawiam,
Daniel Dawid Majewski
jabber:light-i/jid.pl
-------------- next part --------------
#! /bin/bash
# test :
# ./vfscp scp://builder@traficmrk%60/home/services/ftp/th-noarch/pack.rpm /var/cache/poldek/down

# support scp://[localuser:]remoteuser at host[%port]/path/FETCH_FILE
# public key must be instaled on remote host in ~/.ssh/authorized_keys[2]
# requires: id, basename, grep, sed, scp

PATH="/bin:/sbin:/usr/bin:/usr/sbin"

# 	echo "Paramets : ${@}"

if [ "$#" != "2" ]; then
    echo "usage: `basename $0` scp://remoteuser@server/path/FILE DESTFILE"
    exit 1
fi

FETCH_URL=${1}
if echo ${FETCH_URL}|grep -qE '^scp://[^/@]+@' ; then
	if echo ${FETCH_URL}|grep -qE '^scp://[^:@]+:[^@]+@' ; then
		LOGIN=$(echo ${FETCH_URL}|sed 's|^scp://[^:]\+:\([^@]\+\)@.*|\1|')
		AS_USER=$(echo ${FETCH_URL}|sed 's|^scp://\([^:]\+\):[^@]\+ at .*|\1|')
	else
		LOGIN=$(echo ${FETCH_URL}|sed 's|^scp://\([^@]\+\)@.*|\1|')
		AS_USER="poldek"
	fi
	if echo $FETCH_URL|grep -qE '^scp://[^%]+%' ; then
		FETCH_SRV=$(echo ${FETCH_URL}|sed "s;^scp://[^@]\+@\([^%]\+\)%.*;\1;")
		FETCH_SRVP=" -P$(echo ${FETCH_URL}|sed 's|^scp://.*%\([[:digit:]]*\)/.*|\1|')"
	else
		FETCH_SRV=$(echo ${FETCH_URL}|sed 's;^scp://[^@]\+@\([^/]\+\)\.*;\1;')
		FETCH_SRVP=""
	fi
	FETCH_FILE=$(echo ${FETCH_URL}|sed 's|^scp://[^/]\+||')
fi

FETCH_DOWN=${2}

if [ -z "${FETCH_SRV}" -o -z "${FETCH_FILE}" ]; then
	echo "`basename $0`: wrong URL argument"
    exit 1
fi

RUNUSER=`id -nu`
FETCH_GROUP="rpm"
# 	echo "RunUser :${RUNUSER}"

[ ${RUNUSER} == root ] && [ -n ${FETCH_GROUP} ] && chown -R ${AS_USER}.${FETCH_GROUP} ${FETCH_DOWN} ; chmod -R g+w ${FETCH_DOWN}
# echo "Local User: \"${AS_USER}\" Remote User : \"${LOGIN}\" Remote Host : \"${FETCH_SRV}\" Remote Port : \"${FETCH_SRVP}\" Remote File : \"${FETCH_FILE}\" Download to : \"${FETCH_DOWN}\""
sudo -u ${AS_USER} scp -C ${FETCH_SRVP} ${LOGIN}@${FETCH_SRV}:${FETCH_FILE} ${FETCH_DOWN}


More information about the pld-devel-pl mailing list