특정 포트에 얼마나 많은 연결이 있는지 출력하는 다음 명령이 있습니다.
while true
do
echo -n "number of connections: "
netstat -an | grep ESTABLISHED | grep -w <Port Number> | wc -l
date
printf '\n'
sleep 0.3
done | grep -v "number of connections: 0"
연결 수가 0이면 아무것도 인쇄하고 싶지 않습니다. 그러나 날짜는 별도의 줄에 인쇄되므로 grep은 date 명령과 함께 작동하지 않습니다.
다음은 몇 가지 샘플 출력입니다.
Tue Nov 17 16:42:48 EST 2020
Tue Nov 17 16:42:49 EST 2020
number of connections: 1
Tue Nov 17 16:42:49 EST 2020
number of connections: 3
Tue Nov 17 16:42:49 EST 2020
number of connections: 2
Tue Nov 17 16:42:50 EST 2020
처음 두 줄은 연결 수가 0일 때 인쇄되는 내용이지만, 내가 원하는 출력(위 출력 예를 기반으로 함)은 다음과 같습니다.
number of connections: 1
Tue Nov 17 16:42:49 EST 2020
number of connections: 3
Tue Nov 17 16:42:49 EST 2020
number of connections: 2
Tue Nov 17 16:42:50 EST 2020
답변1
변수에 카운트 할당
count=$(netstat -an | grep ESTABLISHED | grep -w <Port Number> | wc -l)
if [[ $count -gt 0 ]]; then #issue your echo or printf