실행중인 프로세스의 네트워크 대역폭 및 파일 액세스를 표시하는 최상위 명령이 있습니까?


31

예를 들어 다음과 같은 내용을보고 싶습니다.

PROCESS       IF       TX       RX       FILE(regular) R/W
prog1         eth0     200kB/s  12kB/s   --            --
              wlan0    12kB/s   100kB/s  --            --
              --       --       --       file1         R
              --       --       --       file2         R
              --       --       --       file3         W
prog2         eth0     0kB/s    200kB/s  --            --
              --       --       --       file4         W
              --       --       --       file5         W

이것이 가능한가? nethogs는 TX / RX 만 표시하고 lsof는 파일 액세스 만 표시합니다.

현재 2 단계 프로세스를 수행하고 있습니다.

sudo nethogs
sudo lsof -a -d 1-999 -c hogging_program /

더 좋은 방법이 있습니까?

답변:


5

내가 아는 한 당신이 달성하려고하는 것은 현재하고있는 것처럼 여러 명령을 결합하는 것이 가능하지만 데이터를 더 쉽게 파싱 할 수있는 다른 응용 프로그램을 알지 못합니다. 파이프 가능한 단일 행 텍스트 출력 모드). 영리한 쉘 스크립팅, 파이프 된 데이터 및 약간의 수동 형식을 사용하면 최소한 원하는 출력에 가깝게 얻을 수 있습니다.

운영 체제의 서로 다른 두 부분에서 제공되는 네트워크 및 파일 통계를 모두 보여주는 무언가에 대한 검색은 'The UNIX Philosophy :'의 일부 테넌트에 대한 것으로 보입니다.

  • 각 프로그램이 한 가지 일을 잘하게하십시오. 새로운 일을하려면 새로운 기능을 추가하여 기존 프로그램을 복잡하게하지 않고 새로 구축하십시오.
  • 모든 프로그램의 출력이 아직 알려지지 않은 다른 프로그램의 입력이 될 것으로 예상합니다. 불필요한 정보로 출력을 어지럽히 지 마십시오.

이것은 lsof와 같이 텍스트를 출력하는 프로그램에서 특히 분명합니다. 일반적으로 다른 프로그램에 파이프 할 데이터만큼 사용자 인터페이스를 제공하는 * NIX 콘솔 프로그램이나 cut 과 같은 쉘 명령 을 사용하여 자체적으로 맞춤화 된 출력을 작성 하는 스크립트는 표시되지 않습니다.

Doug McIlroy는 몇 년 후 그의 초기 진술을 다음과 같이 요약했습니다.

한 가지 일을 잘 수행하는 프로그램을 작성하십시오. 함께 일할 프로그램을 작성하십시오. 범용 인터페이스이므로 텍스트 스트림을 처리하는 프로그램을 작성하십시오.

원하는 형식의 출력을 얻는 데 도움이되지는 않지만 The Art of UNIX Programming 은 잘 읽었으며 인용문의 출처를 찾았습니다.


7
이것은 질문에 대한 답변을 제공하지 않습니다.
cat

이것이 가능한가? -나는 당신이하려는 일이 현재하고있는 것처럼 여러 명령을 결합하는 것이 가장 좋을 것입니다. 더 좋은 방법이 있습니까? 나는 당신이 시도하는 것이 아마도 최선이며 아마도 여러 명령을 설득시킬 수 있다고 생각합니다 ... 영리한 쉘 스크립팅과 파이프 데이터를 사용하면 원하는 결과를 얻을 수 있습니다. -내가 어떤 질문을 놓쳤습니까? 파이프 쉘 스크립트에 대한 언급으로 더 잘 대답 할 수는 있지만 도움이되는 피드백은 : p가 작동하는 스크립트에 대한 정답입니까?
초과해서

나는 당신이 이루고자하는 것이 아마도 "질문에 대답하는"것으로 가장 잘 묘사되어 있다고 생각합니다. 철학에 대해 누군가를 강의하지 않습니다.
Gardner Bickford

철학적 인 교훈이 없다면 아무도 대답이 '아니요'인 이유를 배우지 못하고 인터넷으로 돌아갈 수 있지만 Linux Torvalds의 현명한 단어를 결코 이해하지 못할 것입니다. "리눅스 철학은 '위험에 직면 한 웃음!' 죄송합니다. '직접하세요' 그게 다야. "
overprescribed

17

sysstat 에서 네트워크 및 pidstat에 대해 iftop 을 시도하십시오 .

둘 다 아마도 선택한 배포판을위한 쉬운 설치 (apt-get 등) 일 것입니다.


6

atop파일 핸들로 I / O를 분해하는 것만 큼 구체적이지는 않지만 원하는 것을 제공하는 방법이 있습니다. 전체 네트워킹 통계를 얻으려면 커널 패치를 적용해야합니다.


2

iptraf 는 매우 유용하며 대역폭 호그를 찾을 수 있습니다.


5
더 많은 정보 / 설명을 추가하면 답변이 더 나아질 것입니다.
mtk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.