Làm mới liên tục Netstat (đồng hồ thay đổi đầu ra)


18

Tôi đang sử dụng lệnh đơn giản này để giám sát các kết nối (để đối phó với một số cuộc tấn công DoS gần đây) trên máy chủ Debian của tôi:

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

Làm thế nào để tôi chạy nó liên tục? Vì vậy, nó sẽ tự làm mới một lần mỗi phút (hoặc bất kỳ lượng thời gian nhất định), tất nhiên). Tôi đã thử xem:

watch -n 30 "netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n"

Nhưng nó đã thay đổi đầu ra từ danh sách đẹp với vô số kết nối thành thứ như thế này:

1 tcp        0  10015 [LOCAL IP]
...
1 Proto Recv-Q Send-Q Local Address           Foreign Address         State
1 Active Internet connections (w/o servers)

Vì vậy, IP bên ngoài không được hiển thị. Có điều gì tôi đã bỏ lỡ?

Đây là cách đầu ra ban đầu trông:

  2 [IP ADDRESS]
  4 [IP ADDRESS]
  4 [IP ADDRESS]
  4 [IP ADDRESS]
  7 [IP ADDRESS]
 16 [IP ADDRESS]
 71 [IP ADDRESS]

Và khi tôi nói [LOCAL IP]tôi có nghĩa là IP của máy tôi.

Khi tôi chạy nó với -cnó chỉ đóng băng.


Bạn đang chạy xem với quyền root? Lệnh này có vẻ âm thanh và dường như hành xử như tôi mong đợi trên máy của mình. Chạy mà không in địa chỉ và sau 30 giây có thể in thông báo lỗi.

@StewartPlatt Tôi chạy nó dưới quyền root. Tôi đã thêm đầu ra lệnh ban đầu. Vấn đề là, khi tôi xem - nó chỉ xuất ra quảng cáo địa chỉ IP của tôi hoàn toàn không kết nối với IP của tôi.

Câu trả lời:


22
netstat -c

có thể giúp bạn nếu tôi không hiểu lầm vấn đề của bạn. -c là viết tắt của - liên tục.

EDIT: có bạn đi:

watch -n 30 "netstat -ntu | awk '{print \$5}' | cut -d: -f1 | sort | uniq -c | sort -n"

Tôi đã thêm một \ trước $.


đã thử, xin lỗi tôi không chỉ định điều này trong một câu hỏi. Nó chỉ đóng băng khi tôi thêm -c.

Tôi nhận ra rằng, $ 5 được loại bỏ ở đầu ra của đồng hồ. Có lẽ có một vấn đề dấu ngoặc kép. Tôi đang đào nó ..

cảm ơn bạn, rất tốt để biết về việc thoát khỏi các ký tự đặc biệt trong đồng hồ

1

Chỉ cần chạy một vòng lặp mà ngủ trong 60 giây

[root@host] $ while true
> do
> netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
> sleep 60
> done

Điều này sẽ cung cấp cho bạn cùng một đầu ra cứ sau 60 giây

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.