特定のポートにどのくらいの接続があるかを出力する次のコマンドがあります。
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
最初の2行は、接続数が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