Paweł Nowicki

Paweł Nowicki Oracle Developer

Temat: Metoda na logi przy transferze

Potrzebuję zbierać informacje (szczegółowe) na temat transferowanych przeze mnie plików. Mam dostęp przez SSH do kilku serwerów. Chciałbym pobrać plik z jednego serwera na drugi zachowując w pliku logi transferu. Potrzebuje danych jakie można znaleźć nawet w zwykłym wget:

Długość: 2737289 (2,6M) [application/zip]
Zapis do: `Suamp.zip'

0K .......... .......... .......... .......... .......... 1% 65,5K 40s
50K .......... .......... .......... .......... .......... 3% 102K 32s
100K .......... .......... .......... .......... .......... 5% 112K 29s
150K .......... .......... .......... .......... .......... 7% 93,0K 28s
200K .......... .......... .......... .......... .......... 9% 86,9K 27s
250K .......... .......... .......... .......... .......... 11% 96,0K 26s
300K .......... .......... .......... .......... .......... 13% 90,6K 26s
350K .......... .......... .......... .......... .......... 14% 120K 24s
400K .......... .......... .......... .......... .......... 16% 104K 24s
450K .......... .......... .......... .......... .......... 18% 105K 23s
500K .......... .......... .......... .......... .......... 20% 109K 22s
550K .......... .......... .......... .......... .......... 22% 81,5K 22s
600K .......... .......... .......... .......... .......... 24% 106K 21s
650K .......... .......... .......... .......... .......... 26% 91,9K 21s
700K .......... .......... .......... .......... .......... 28% 109K 20s
750K .......... .......... .......... .......... .......... 29% 75,3K 20s
800K .......... .......... .......... .......... .......... 31% 98,0K 19s
850K .......... .......... .......... .......... .......... 33% 115K 19s
900K .......... .......... .......... .......... .......... 35% 105K 18s
950K .......... .......... .......... .......... .......... 37% 92,2K 17s
1000K .......... .......... .......... .......... .......... 39% 103K 17s
1050K .......... .......... .......... .......... .......... 41% 101K 16s
1100K .......... .......... .......... .......... .......... 43% 103K 16s
1150K .......... .......... .......... .......... .......... 44% 88,4K 15s
1200K .......... .......... .......... .......... .......... 46% 147K 15s
1250K .......... .......... .......... .......... .......... 48% 106K 14s
1300K .......... .......... .......... .......... .......... 50% 109K 13s
1350K .......... .......... .......... .......... .......... 52% 106K 13s
1400K .......... .......... .......... .......... .......... 54% 122K 12s
1450K .......... .......... .......... .......... .......... 56% 90,7K 12s
1500K .......... .......... .......... .......... .......... 57% 69,3K 12s
1550K .......... .......... .......... .......... .......... 59% 100K 11s
1600K .......... .......... .......... .......... .......... 61% 85,9K 11s
1650K .......... .......... .......... .......... .......... 63% 101K 10s
1700K .......... .......... .......... .......... .......... 65% 75,9K 10s
1750K .......... .......... .......... .......... .......... 67% 109K 9s
1800K .......... .......... .......... .......... .......... 69% 94,9K 9s
1850K .......... .......... .......... .......... .......... 71% 104K 8s
1900K .......... .......... .......... .......... .......... 72% 94,9K 7s
1950K .......... .......... .......... .......... .......... 74% 110K 7s
2000K .......... .......... .......... .......... .......... 76% 92,5K 6s
2050K .......... .......... .......... .......... .......... 78% 99,3K 6s
2100K .......... .......... .......... .......... .......... 80% 87,4K 5s
2150K .......... .......... .......... .......... .......... 82% 91,6K 5s
2200K .......... .......... .......... .......... .......... 84% 87,2K 4s
2250K .......... .......... .......... .......... .......... 86% 71,1K 4s
2300K .......... .......... .......... .......... .......... 87% 74,9K 3s
2350K .......... .......... .......... .......... .......... 89% 94,9K 3s
2400K .......... .......... .......... .......... .......... 91% 103K 2s
2450K .......... .......... .......... .......... .......... 93% 53,6K 2s
2500K .......... .......... .......... .......... .......... 95% 15,7K 1s
2550K .......... .......... .......... .......... .......... 97% 64,4K 1s
2600K .......... .......... .......... .......... .......... 99% 76,3K 0s
2650K .......... .......... ... 100% 101K=31s

2010-04-14 17:57:57 (85,0 KB/s) - zapisano `Suamp.zip' [2737289/2737289]


Ważne jest dla mnie równomierne tworzenie szeregu czasowego, wraz z pobieraniem informacji o wartości chwilowej transferu.
Problemem jest moja słaba znajomość Linuksa i programów na niego tworzonych.
Adrian Czerniak

Adrian Czerniak Administrator
Systemów Uniksowych

Temat: Metoda na logi przy transferze

wget url >> log 2>&1
Paweł Nowicki

Paweł Nowicki Oracle Developer

Temat: Metoda na logi przy transferze

Adrian Czerniak:
wget url >> log 2>&1
wget natywnie obsługuje zrzut logów do pliku, po prostu z parametrem -o

Rzecz w tym, że nie mogę go użyć.

Potrzebuję się dostać na drugi serwer po ssh, tam nie ma ani ftp, ani apacha.

Pobrać plik mógłbym poprzez scp, ale nie jestem w stanie wycisnąć z niego żadnych logów :(, a to na nich tylko mi zależy. Bo sam plik i tak będę kasował zaraz po transferze.
Stanisław P.

Stanisław P. Software designer

Temat: Metoda na logi przy transferze

Paweł Nowicki:
Adrian Czerniak:
wget url >> log 2>&1
wget natywnie obsługuje zrzut logów do pliku, po prostu z parametrem -o

Rzecz w tym, że nie mogę go użyć.

Potrzebuję się dostać na drugi serwer po ssh, tam nie ma ani ftp, ani apacha.

No tak - ale skoro się na ten host logujesz, to i wynik `wget ... >> log` możesz ściągnąć do siebie przez scp na przykład.
Paweł Nowicki

Paweł Nowicki Oracle Developer

Temat: Metoda na logi przy transferze

Stanisław Pitucha:
[...]

No tak - ale skoro się na ten host logujesz, to i wynik `wget ...
>> log` możesz ściągnąć do siebie przez scp na przykład.

Sam plik to ja wiem jak sobie ściągnąć.
Powiedz mi tylko jak użyć wget pomiędzy dwoma zdalnymi hostami, na których nie ma ftp, ni apacha.
Potrzebuje zrobić proste kopiowanie login@serwer:/home/login/plik do /home/login/ z używanie wget, bądź w jakikolwiek inny sposób, który da mi szczegółowe informacje o transferze, np. dzięki scp kopiuję plik bez problemu, ale nie mogę za żadne skarby przechwycić do pliku informacji o transferze (wyświetlany progress nie pojawia się w pliku output)...Paweł Nowicki edytował(a) ten post dnia 15.04.10 o godzinie 08:38
Adrian Czerniak

Adrian Czerniak Administrator
Systemów Uniksowych

Temat: Metoda na logi przy transferze

Bezpośrednio outputu scp nie przechwycisz, bo ono nie wysyła go jeśli miałoby pisać do pipe czy czegoś co nie jest tty. Możesz napisać sobie prosty skrypt w perlu, który pokaże Ci informacje na stdout używając Net::SCP, albo spróbować curlem, jeśli zainstalowany u Ciebie jest skompilowany ze wsparciem dla scp.
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: Metoda na logi przy transferze

Myslalem o uzyciu screena - cos w rodzaju:

screen -L scp host:plik lokalnyplik

i teoretycznie output z scp powinien sie zalogowac do pliku screenlog.0. Problem jest w tym, ze przynajmniej u mnie scp odpalone w sesji screena sie zawiesza i mozna tylko przerwac je przez Ctrl-C. Nie wiem jak u ciebie - moze sprawdz...
Paweł Nowicki

Paweł Nowicki Oracle Developer

Temat: Metoda na logi przy transferze

Jarosław Rafa:
Myslalem o uzyciu screena - cos w rodzaju:

screen -L scp host:plik lokalnyplik

i teoretycznie output z scp powinien sie zalogowac do pliku screenlog.0. Problem jest w tym, ze przynajmniej u mnie scp odpalone w sesji screena sie zawiesza i mozna tylko przerwac je przez Ctrl-C. Nie wiem jak u ciebie - moze sprawdz...

W międzyczasie kumpel podrzucił mi to rozwiązanie. Na moim systemie screen działa całkiem ładnie... ale potrzebuje użyć tego w sieci serwerów o okrojonej funkcjonalności i tam niestety screen'a nie ma. :(

Konkretnie zaczynam badać pewne zależności w projekcie PlanetLab. Tu węzły wyposażone są w bardo okrojoną Fedorę.
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: Metoda na logi przy transferze

A moze po prostu przekompiluj scp usuwajac warunek wylaczajacy output, kiedy nie idzie on na terminal? I wtedy zwykle przekierowanie do pliku zadziala...
Paweł Nowicki

Paweł Nowicki Oracle Developer

Temat: Metoda na logi przy transferze

Jarosław Rafa:
A moze po prostu przekompiluj scp usuwajac warunek wylaczajacy output, kiedy nie idzie on na terminal? I wtedy zwykle przekierowanie do pliku zadziala...

A czym mogę to skompilować bez GCC? :D

konto usunięte

Temat: Metoda na logi przy transferze

A DSH ?
http://www.netfort.gr.jp/~dancer/software/dsh.html.en
Jarosław Rafa

Jarosław Rafa senior software
engineer, Motorola
Solutions Systems
Polska

Temat: Metoda na logi przy transferze

Paweł Nowicki:
Jarosław Rafa:
A moze po prostu przekompiluj scp usuwajac warunek wylaczajacy output, kiedy nie idzie on na terminal? I wtedy zwykle przekierowanie do pliku zadziala...

A czym mogę to skompilować bez GCC? :D

No a nie da się skompilować na innej maszynie z takim samym systemem, i przekopiować binarki na tą docelową?
Paweł Nowicki

Paweł Nowicki Oracle Developer

Temat: Metoda na logi przy transferze

Udało mi się zrobić krok do przodu. Doinstalowałem screena
Niestety rzuca mi takim komunikatem:

Cannot access '/dev/pts/0': No such file or directory
Stanisław P.

Stanisław P. Software designer

Temat: Metoda na logi przy transferze

To może napisz tak prosto i od początku - co chcesz przetestować, w jakim celu i jaki sprzęt masz do dyspozycji... bo zaczęliśmy trochę na zbyt niskim poziomie chyba. Może są już inne narzędzia do tego co chcesz zrobić. Np. do testów transferu lepiej używać iperf'a, itd.

Więc... powiedz czego konkretnie oczekujesz i w jakim celu.
Paweł Nowicki

Paweł Nowicki Oracle Developer

Temat: Metoda na logi przy transferze

O systemie:
Do dyspozycji mam ponad 1000 węzłów na całym świecie z minimalistyczną Fedora Core 8. Do połączenia praktycznie wymagane jest ssh (ftp, http nie ma) Prawie wszystko co do tej pory spróbowałem jest zablokowane :D lub po prostu niedoinstalowane. Nadzieją natchnęło mnie to, że mogę używać YUM. Dzięki temu mam aktualnie dostęp do screen, niestety wywołanie go kończy się wyświetleniem komunikatu: Cannot access '/dev/pts/0': No such file or directory.

Badania:
Zamierzam pobrać kilka plików różnej wielkości (5,10,20 MB) z około 50 węzłów na jeden wybrany. Czynność ponowić kilkakrotnie na innych węzłach docelowych. Po pobraniu pliki będę natychmiast kasował - interesują mnie logi:
szeregi czasowe z informacją ile bitów zostało już pobranych.
Stanisław P.

Stanisław P. Software designer

Temat: Metoda na logi przy transferze

Jeśli chodzi tylko o informacje nt. szybkości przesyłu, to możesz wygenerować to właśnie iperf'em - port ustawiasz dowolny. Po jednej stronie serwer, po drugiej klient. Jeśli ustawisz rozmiar fragmentu na taki, jaką chcesz mieć przerwę pomiędzy raportami, to dostaniesz max prędkość po każdym kroku.
Nie będą to oczywiście pliki, ale skoro i tak je kasujesz po drugiej stronie, to możesz wysyłać i zera.Stanisław Pitucha edytował(a) ten post dnia 17.04.10 o godzinie 02:16
Paweł Nowicki

Paweł Nowicki Oracle Developer

Temat: Metoda na logi przy transferze

Stanisław Pitucha:
Jeśli chodzi tylko o informacje nt. szybkości przesyłu, to możesz wygenerować to właśnie iperf'em - port ustawiasz dowolny. Po jednej stronie serwer, po drugiej klient. Jeśli ustawisz rozmiar fragmentu na taki, jaką chcesz mieć przerwę pomiędzy raportami, to dostaniesz max prędkość po każdym kroku.
Nie będą to oczywiście pliki, ale skoro i tak je kasujesz po drugiej stronie, to możesz wysyłać i zera.
Cóż... Szukam właściwie najprostszego rozwiązania, tak, aby nie musieć najlepiej nić instalować po stronie "serwer", a co najwyżej "klient", bo tych planuję mieć najwyżej kilka. Gdybym rozwiązał wspomniany wcześniej problem ze screenem, to być może miałbym już wszystkie problemy z głowy. Tak się jednak nie stało.
W międzyczasie próbowałem trochę inaczej, tzn. iperfem. Nie czytam jeszcze logów z tego programu zbyt płynnie, jednak wydaje mi się, że połączenie nawiązałem. Zarówno po jednej jak i drugiej stronie wymienione zostały powitania. Tylko mam wrażenie, że transfer jest żaden. Nawiązywana jest zaledwie próba połączenia. Nie wiem, czy przez słabe łącze, czy też może są problemy z ssh.
Spójrz proszę zresztą na logi:

siger@piccolo:~$ iperf -c 156.x.10.51 -p 33333 -u -F x.pps
------------------------------------------------------------
Client connecting to 156.x.10.51, UDP port 33333
Sending 1470 byte datagrams
UDP buffer size: 112 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.1.101 port 53706 connected with 156.x.10.51 port 33333
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec
[ 4] Sent 893 datagrams
[ 4] Server Report:
[ 4] 0.0-10.6 sec 360 KBytes 278 Kbits/sec 5.249 ms 642/ 893 (72%)


gdzie plik x.pps ma ponad 5MB, a iperf zachowuje się zupełnie jakby nie miał parametru -F
Stanisław P.

Stanisław P. Software designer

Temat: Metoda na logi przy transferze

Paweł Nowicki:
gdzie plik x.pps ma ponad 5MB, a iperf zachowuje się zupełnie jakby nie miał parametru -F
Parametry -u i -F nie działają ze sobą. Jak wytniesz -u, to będziesz miał normalny test przesyłu TCP. Ale musisz się też zdecydować co testujesz - póki co pisałeś o rzeczach działających po TCP. Na pewno po UDP chcesz przesyłać pliki?

Test UDP działa tylko z limitami czasu / BW. By default wysyła dane przez 10 sekund. Można zmienić przez -t (i maksymalny transfer przez -b)Stanisław Pitucha edytował(a) ten post dnia 19.04.10 o godzinie 23:45
Paweł Nowicki

Paweł Nowicki Oracle Developer

Temat: Metoda na logi przy transferze

Stanisław Pitucha:
[...]
Parametry -u i -F nie działają ze sobą. Jak wytniesz -u, to będziesz miał normalny test przesyłu TCP. Ale musisz się też zdecydować co testujesz - póki co pisałeś o rzeczach działających po TCP. Na pewno po UDP chcesz przesyłać pliki?

Test UDP działa tylko z limitami czasu / BW. By default wysyła dane przez 10 sekund. Można zmienić przez -t (i maksymalny transfer przez -b)
Mam już raczej taki rezultat jaki oczekiwałem
iperf -c 156.x.10.51 -p 33333  -i 0.1 -n 10485760

Choć przyznaję, że dziwi mnie fakt, że iperf utrzymuje defaultową transmisję tylko przez 10. Nawet wskazanie źródła jako pliku (parametr -F) nie zmienia tego. Spodziewałem się, że w takim przypadku transmisja będzie do końca pliku. Czy znasz może sposób, aby to ominąć?

Przy okazji, dla kogoś kto zabrnie tu z otchłani internetu, polecam dość dobry opis do iperf, jako uzupełnienie manuala: http://openmaniak.com/iperf.php
Stanisław P.

Stanisław P. Software designer

Temat: Metoda na logi przy transferze

Paweł Nowicki:
Nawet wskazanie źródła jako pliku (parametr -F) nie zmienia tego. Spodziewałem się, że w takim przypadku transmisja będzie do końca pliku. Czy znasz może sposób, aby to ominąć?

Tak - nie używaj "-u" po prostu.



Wyślij zaproszenie do