-> Własnie, a tu już wymagany jest perl. Ja mam routery na -> dyskach flash -> 32MB, nie ma tam miejsca na perla, z tego powodu robotę robi -> centralny -> lms i to on robi dystrybucję. Tak sobie pomyślałem, że warto rozwinąć ten wątek. Jeśli nie jest problemem posiadanie na routerach SSH to można to wykonać w stosunkowo łatwy sposób: Na poczatku, na serwerze, na którym "urzęduje" LMS: `ssh-keygen -b 1024 -f ~/.ssh/identity -t rsa -P ""` `scp ~/.ssh/identity.pub konto_odbierające_plik@adres_IP_Routera:~/.ssh/authorized_keys` później już można używać polecenia scp/ssh bez konieczności podawania hasła. Na przykład: `scp /sciezka/do/pliku/plik.conf konto_odbierające_plik@adres_IP_routera:/sciezka/na/routerze/` Pamiętajmy, że "konto_odbierające_plik" musi mieć prawa zapisu do '/sciezka/na/routerze/' na routerze oraz, że polecenie scp musi być wydane z konta, na którym został uruchomiony ssh-keygen. Jeśli natomiast chcielibyśmy polecenie scp uruchamiać z jakiegokolwiek innego konta (na przykład jako user 'www'), należy umieścić wygenerowany pliczek '~/.ssh/identity' w jakimś miejscu, do którego ma dostęp user 'www' i dodać do sładni polecenia scp parametr: '-i /sciezka/do/pliku/identity' polecenie mogłoby wówczas wyglądać tak: `scp -i /sciezka/do/pliku/identity /sciezka/do/pliku/plik.conf konto_odbierające_plik@adres_IP_routera:/sciezka/na/routerze/` Żeby to jakoś lepiej zobrazować, przygotowałem przykładowy, dość prymitywny skrypcik. Skrypt potrafi, po podaniu prawidłowego parametru wykonać dwie czynności: 1. Skopiować lokalny plik na zdalną maszynę przy użyciu SCP. Na przykład: `./nazwa_skryptu.sh kopiuj` 2. Uruchomić polecenie na zdalnej maszynie przy użyciu SSH. Na przykład: `./nazwa_skryptu.sh odpal` 3. Wykonać obie powyższe czynności na raz :-) Na przykład: `./nazwa_skryptu.sh total` -------- początek skryptu --------- #!/usr/bin/env bash # definicje: ROUTER_ADDRESS="192.168.0.2" ROUTER_USER="zenon" # tu wpisz miejsce przechowywania # pliku 'identity' ID_FILE="/home/zenon/.ssh/identity" # tu podaj dodatkowe parametry scp (jeśli będą potrzebne). # Na przykład port, na którym słucha ssh # na routerze: "-P 2222" SCP_PARAM="-P 22" [ ${ID_FILE} ] && SCP_PARAM="-i ${ID_FILE} ${SCP_PARAM}" # tu wpisujesz plik, # który ma być skopiowany na router: SRC_CONF_FILE="/etc/hosts" # tu podajesz ścieżkę # dokąd na routerze chcesz skopiować pliczek: ROUTER_PATH_FOR_FILE="/tmp/" # tu można podać dodatkowe parametry ssh, # niezbędne do połączenia się z routerem LOCAL_SSH_OPTS="-p 22" # Tu wpisujemy polecenie # jakie ma zostać wykonane na routerze. # Na przykład: RUN_AT_ROUTER="cat -s /etc/hosts" [ ${ID_FILE} ] && LOCAL_SSH_OPTS="-i ${ID_FILE} ${LOCAL_SSH_OPTS}" #-------- koniec konfiguracji ------ SSH_PROG=`which ssh` SCP_PROG=`which scp` kopiuj() { $SCP_PROG ${SCP_PARAM} ${SRC_CONF_FILE} ${ROUTER_USER}@${ROUTER_ADDRESS}:${ROUTER_PATH_FOR_FILE} } uruchom() { ${SSH_PROG} ${LOCAL_SSH_OPTS} ${ROUTER_USER}@${ROUTER_ADDRESS} -o Batchmode=yes ${RUN_AT_ROUTER} } [ -z $1 ] && echo "Do uruchomienia skryptu potrzebny jest parametr: \"kopiuj\" lub \"odpal\" lub \"total\"" && exit 1 [ $1 = kopiuj ] && kopiuj [ $1 = odpal ] && uruchom [ $1 = total ] && kopiuj && uruchom [ $1 = kopiuj ] || \ [ $1 = odpal ] || \ [ $1 = total ] || \ echo "Podano niewlasciwy parametr. Prawidlowy parametr to: \"kopiuj\" lub \"odpal\" lub \"total\"" && exit 1 --------- Koniec skryptu --------- Mam nadzieję, że komuś się przyda ;-) Pozdrawiam, Jacek Ufnal Admin tu i ówdzie...