시스템에서 현재 TCP 연결 수 얻기 방법이 있습니까? 총 TCP 연결 수가

대신에 wc -l /proc/net/tcp더 빠른 방법이 있습니까?

총 TCP 연결 수가 필요합니다.



답변

숫자를 얻고 싶고 세부 정보가 필요하지 않은 경우에서 데이터를 읽을 수 있습니다 /proc/net/sockstat{,6}. 절대 연결 수를 얻으려면 두 값을 모두 결합해야합니다.

커널 자체 NETLINK_INET_DIAG에서 정보를 얻으려면 커널에서 정보를 읽지 않고도 정보를 얻을 수 있습니다. /proc


답변

더 빠른 방법? 그렇게하면 1 초 안에 응답을 얻을 수 있습니다. 실제로 내 컴퓨터에서 0.009 초가 걸립니다!

타이핑이 덜 필요한 방법을 찾고 있습니까? 이 경우 별칭을 설정하십시오 (예 :

alias tcpcount="wc -l /proc/net/tcp"

별명을 입력하면됩니다. 예를 들어이 tcpcount번호를 얻기 위해 예에서 사용한 것과 같은 이름 입니다.

로그인 할 때마다 별명이 정의되도록 행을 입력하거나 .bashrc에 추가하십시오.

많은 수의 연결의 경우 다음이 약간 더 빠르게 실행될 수 있습니다 (매우 적은 수의 연결의 경우 약간 느려질 수 있음).

#!/bin/bash
/usr/bin/tail -1 /proc/net/tcp | (IFS=:
read COUNT DISCARD
echo $COUNT
)

아니면 …

awk 'END {print NR}' /proc/net/tcp

이 두 솔루션 모두 “wc”가 라인 수를 계산하는 데 매우 적합하지 않다고 가정합니다. 내 테스트는이 가정이 사실임을 보여줍니다.

첫 번째는 tail 명령이 불필요한 데이터를 버리는 데 실제로 도움이되어 여분의 하위 쉘을 만들고 환경 변수에 대한 추가 작업을 수행한다는 전제를 수행합니다. / proc / net / tcp의 줄에 이미 번호가 매겨져 줄을 세지 않아도된다는 사실을 이용합니다. 최종 솔루션은 awk가 더 큰 프로그램을로드하고 여러 프로세스를 생성하기 때문에 단점을 상쇄하기에 충분하다고 가정합니다. awk 솔루션은 간단한 한 줄 별칭 정의에 잘 어울리는 추가 이점을 제공합니다 (스크립트가 없기 때문에 추가 이점을 제공하므로 추가 쉘 프로세스가 없어서 몇 초의 이점이 있습니다).


답변

ss -s자세한 답변을 보려면 명령을 사용하십시오 .


답변