사이트 내 전체검색
[linux] ftp로 자료줄대 상대방의 다운속도를 볼려면???
로빈아빠
https://cmd.kr/server/364 URL이 복사되었습니다.

본문

ftp로 자료줄대 상대방의 다운속도를 볼려면???

>ftp자료실을 운영하는데.. 문뜩 내가 상대방에서
보내는속도가..
>몇인지 알고 싶어서.. 어떻게 하면 상대방의 다운속도 혹은 업속도를
>볼수 있을까요??
>

========================================

이 문제는
FTP 서버와 FTP 클라이언트 간의 네트워크 대역폭에 달려 있습니다.

예를 들어
제 아무리 빠른 네트워크 환경에 서버가 위치한다고 해도 모두 다 빠르게 다운로드하지는 못합니다.
클라이언트가 지극히 열악한 환경(모뎀)이 그 예입니다.

속도 측정은
FTPd 로그파일을 근거로 수동으로 계산해야 합니다.

만약 proftpd 를 사용한다면 proftpd.conf 파일을 다음과 같이 수정하여 %T 로 하여금 업/다운로드시에 걸린 시간을 로그하도록 하면 됩니다.

-- proftpd.conf -------------
... LogFormat custom "%h %l %u %t ["%r"] %s %b %T" ExtendedLog /var/log/proftpd.log READ,WRITE custom ...

이렇게 수정 또는 추가하고 proftpd를 재가동하면 됩니다.

/var/log/proftpd.log
파일을 열어보면

... ["STOR anyfile_name"] 226 4654145 0.438 ... ["RETR anyfile_name"] 226 4654145 0.428

이와 비슷한 내용을 볼 수 있습니다.

- STOR : 클라이언트에서 서버로 업로드
- RETR : 클라이언트에서 다운로드
- 226  : 상태코드이고,
- 4654145  :anyfile_name 파일의 크기(bytes 단위)
- 0.438 : 업로드에 걸리는 시간(초단위)
- 0.428 : 다운로드에 걸리는 시간(초단위)

입니다.

계산해보면
서버로 업로드는 (4654145/1024*0.438) = 10377KBytes/sec
약 초당 10M 정도로 업로드되었다는 내용입니다. (이 수치는 내부 네트워크 환경에서 방금 테스트한 수치임)

다운로드도 이와 같은 방법으로 계산해 보면 됩니다.

주의할점은
각 클라이언트별로 묶어서

(모든 다운로드 bytes 합)/(모든 다운로드에 걸리는 시간의 합)

으로 계산해 보면 각각 클라이언트마다 평균 다운로드 속도를 알 수 있을 겁니다.

쉘스크립트로 계산해 보면 더 재미(?)있을 것 같군요..

Logformat 설정을 좀더 간소화해서 설정하면 좋겠죠..

http://proftpd.oops.org/reference.php?mode=detail&key=LogFormat&class=l
에는 로그포맷에 관한 설명이 있군요...

문법: LogFormat nickname "format-string" 기본 설정: LogFormat default "%h %l %u %t \"%r\" %s %b" 사용 범위: server config 사용가능버젼: 1.1.6pl1 이후 버젼 ---------------------------------------------------- LogFormat 지시자는 ExtendedLog 지시자와 함께 사용 할 일반적인 로그 형식을 생성 하는데 사용되어 진다. 일단 생성을 하면, 형식은 지정된 별칭에 의해 참조가 되어 진다. format-string 인자는 문자, 숫자, 그리고 심볼문자의 조합으로 이루어 진다. % 는 meta-sequence 를 시작하기 위해 사용되어 진다 (아래를 참조하라). % 를 meta-sequence 를 시작 하기 위한 문자가 아닌 일반적인 문자열로 인식을 시키기 위해서는 %% 로 표현을 하면 된다. 아래의 meta-sequence 들은 log 를 할때 대신하여 사용을 할 수 있다. %A -- (패스워드가 주어진) 익명 사용자 또는 익명 유저가 아닐 경우 UNKNOWN %b -- 요청에 의해 보내진 Byte 량 %f -- 저장되었거나 복구되어진 filename %F -- client 측에서의 저장되고나 복구되어지는 filename %{FOOBAR}e -- 환경 변화가 가능한 FOORBAR의 항목 %h -- 원격 host name %a -- 원격 IP address %l -- 원격 username (ident로 부터) %m -- client 등으로 부터 RETR 을 받는 명령어 이름 %p -- Local server port number %v -- Local server name %P -- Local server process id (pid) %r -- client로 부터 받는 모든 명령어 %t -- 현재 local time %{format}t -- 현재 local time 형식 (strftime(3) format) %T -- file 전송시에 걸리는 시간 (초단위) %s -- Numeric FTP response code (status) %u -- Local의 인증된 userid

댓글목록

등록된 댓글이 없습니다.

1,139 (11/23P)

Search

Copyright © Cmd 명령어 3.149.29.98