poldek & ssh
Bartosz Świątek
shadzik w gmail.com
Pią, 13 Mar 2009, 01:09:48 CET
W dniu 12 marca 2009 23:55 użytkownik Daniel Dawid Majewski
<light-i w o2.pl> napisał:
> 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
>
> #! /bin/bash
> # test :
> # ./vfscp scp://builder@traficmrk%60/home/services/ftp/th-noarch/pack.rpm /var/cache/poldek/down
>
> # support scp://[localuser:]remoteuser@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://\([^:]\+\):[^@]\+ w .*|\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}
>
Czyli w gruncie rzeczy chodzi Ci o coś takiego?
[bartek w macbook ~]$ ssh root w pld.atwa.us "poldek -ivh xorg-app-xload"
Wczytywanie [pndir]titanium...
Wczytywanie [pndir]titanium...
Wczytywanie [pndir]titanium-ready...
Wczytywanie [pndir]titanium-ready...
Wczytywanie [pndir]titanium-test...
Wczytywanie [pndir]titanium-test...
Przeczytano 9327 pakietów
Przetwarzanie zależności...
There are 1 package to install:
I xorg-app-xload-1.0.2-3.x86_64
Potrzeba pobrać 14.6KB archiwów (14.6KB do pobrania).
Po rozpakowaniu 20.7KB będzie użyte.
Pobieranie titanium::xorg-app-xload-1.0.2-3.x86_64.rpm...
..............................zrobione
Uruchamianie rpm --install -vh --root /...
Przygotowywanie... ##################################################
xorg-app-xload ##################################################
[bartek w macbook ~]$
1 linijka a output jest.
--
"I'm living proof if you do one thing right in your career, you can
coast for a long time. A LOOOOONG time." -Guy Kawasaki
Więcej informacji o liście dyskusyjnej pld-devel-pl