답변:
더 빠른 방법? 그렇게하면 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 솔루션은 간단한 한 줄 별칭 정의에 잘 어울리는 추가 이점을 제공합니다 (스크립트가 없기 때문에 추가 이점을 제공하므로 추가 쉘 프로세스가 없어서 몇 초의 이점이 있습니다).
/proc/net/tcp
합니다. 시도해 볼 수는 netstat -n -t | wc -l
있지만 netstat도 다음과 같이 읽습니다./proc/net/tcp
netstat -nt
약 180.000 개의 연결로 1 분 이상이 소요됩니다 . 왜 그렇게 느려 야하는지 이유가 없습니다 ... (읽기도 /proc/net/tcp
매우 느립니다)
awk
접근 방식이 ~보다 느리다는 것을 나타냅니다 wc
. tail
와 동등한 것으로 보입니다 wc
.
ss -s
자세한 답변을 보려면 명령을 사용하십시오 .
ss -s