Có một lệnh giống như trên cho thấy băng thông mạng và truy cập tệp của các quy trình đang chạy


31

Ví dụ: chúng tôi muốn xem:

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

Điều này có thể không? nethogs chỉ hiển thị TX / RX, trong khi lsof chỉ hiển thị các truy cập tệp.

Tôi hiện đang thực hiện quy trình 2 bước như vậy:

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

Có cách nào tốt hơn?

Câu trả lời:


5

Theo tôi biết, không. Những gì bạn đang cố gắng thực hiện có thể kết hợp nhiều lệnh như bạn hiện đang làm, mặc dù tôi không biết các ứng dụng khác sẽ cung cấp cho bạn dữ liệu dễ phân tích hơn (ed: một câu trả lời khác được đề xuất iftop mà tôi không biết đã thêm chế độ đầu ra văn bản một dòng có thể ống). Với một số kịch bản shell thông minh, dữ liệu đường ống và một chút định dạng thủ công, bạn có thể có ít nhất gần với đầu ra mà bạn đang tìm kiếm.

Tìm kiếm của bạn cho một cái gì đó hiển thị cả số liệu thống kê mạng và tệp - sẽ được cung cấp bởi hai phần khác nhau của hệ điều hành - dường như chống lại một số người thuê của 'Triết lý UNIX:'

  • Làm cho mỗi chương trình làm một điều tốt. Để thực hiện một công việc mới, hãy xây dựng một lần nữa thay vì làm phức tạp các chương trình cũ bằng cách thêm các tính năng mới.
  • Hy vọng đầu ra của mọi chương trình sẽ trở thành đầu vào cho chương trình khác, như chưa biết, chương trình. Đừng lộn xộn đầu ra với thông tin không liên quan.

Điều này đặc biệt rõ ràng trong các chương trình xuất văn bản, như lsof. Bạn thường không thấy * các chương trình bảng điều khiển NIX cung cấp giao diện người dùng nhiều như dữ liệu được chuyển sang chương trình khác hoặc có thể là tập lệnh sử dụng các lệnh shell như cắt để tạo đầu ra được tùy chỉnh riêng.

Doug McIlroy đã tóm tắt tuyên bố trước đó của mình nhiều năm sau:

Viết chương trình làm một việc và làm tốt. Viết chương trình để làm việc cùng nhau. Viết chương trình để xử lý các luồng văn bản, bởi vì đó là một giao diện phổ quát.

Mặc dù nó có thể không giúp bạn có được đầu ra được định dạng mà bạn đang tìm kiếm, Nghệ thuật lập trình UNIX là một bài đọc tốt và là nơi tôi tìm thấy các nguồn cho các trích dẫn đó.


7
Điều này không cung cấp một câu trả lời cho câu hỏi.
con mèo

Điều này có thể không? - Tôi tin rằng những gì bạn đang cố gắng thực hiện có lẽ là tốt nhất (và theo như tôi chỉ biết) có thể kết hợp nhiều lệnh như bạn hiện đang làm. -- Có cách nào tốt hơn? Tôi tin rằng những gì bạn đang cố gắng có lẽ là tốt nhất và chỉ có thể thuyết phục được nhiều lệnh ... với một số kịch bản shell và dữ liệu đường ống thông minh, bạn có thể nhận được đầu ra [được định dạng theo cách] mà bạn đang tìm kiếm. - câu hỏi nào tôi đã bỏ lỡ? có thể được trả lời tốt hơn khi đề cập đến các tập lệnh shell được xử lý, nhưng phản hồi hữu ích của bạn không đề cập rằng: p có phải là câu trả lời đúng cho tập lệnh không?
đè

Tôi tin rằng những gì bạn đang cố gắng thực hiện có lẽ được mô tả tốt nhất là "trả lời một câu hỏi"; không giảng bài về triết học
Gardner Bickford

Ill đặt câu trả lời rõ ràng hơn lên hàng đầu. Mặc dù vậy, trong bài học triết học, không ai biết tại sao câu trả lời là không, và có thể lang thang trở lại internet, không bao giờ hiểu những lời khôn ngoan của Linux Torvalds; "Triết lý Linux là 'Cười khi đối mặt với nguy hiểm!' Rất tiếc. Sai một cái. 'Tự làm đi.' Đó là nó."
đè

17

Hãy thử iftop cho mạng và pidstat từ sysstat .

Cả hai có lẽ là một cài đặt dễ dàng (apt-get, v.v.) để phân phối lựa chọn của bạn.


6

atopđi theo một cách nào đó để cung cấp cho bạn những gì bạn muốn, mặc dù nó sẽ không cụ thể như phá vỡ I / O bằng filehandle. Để có được số liệu thống kê mạng đầy đủ, bạn phải áp dụng một bản vá kernel.


2

iptraf có thể rất hữu ích và tìm kiếm băng thông.


5
Thêm nhiều thông tin / giải thích sẽ làm cho câu trả lời của bạn tốt hơn.
mtk 18/03/13
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.