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