需求:

查找22端口请求数最高的前 20个IP地址,判断中间最小的请求数是否大于10,如大于10,则输出系统活动情况报告到/tmp/sar.txt,如果没有,则在 600s 后重试,直到有输出为止。

实现:

22.sh

#!/bin/bash

state="true"

while $state
do
 requests=$(netstat -ant | awk -F'[ :]+' '/:22/{count[$4]++} END {for(ip in count) print count[ip]}' | sort -n | head -20 | tail -1)
 if [ "$requests" -gt 10 ];then
   sar -A >/tmp/sar.txt
   state="false"
 else
   sleep 600
   continue
 fi
done
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

验证:

[root@logstash ~]# sh 22.sh 
[root@logstash ~]# 
[root@logstash ~]# cat /tmp/sar.txt 
Linux 3.10.0-1160.el7.x86_64 (logstash) 	05/28/2024 	_x86_64_	(4 CPU)

09:30:19 AM       LINUX RESTART

09:40:01 AM     CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
09:50:01 AM     all      0.01      0.00      0.05      0.00      0.00      0.00      0.00      0.00      0.00     99.94
09:50:01 AM       0      0.00      0.00      0.03      0.00      0.00      0.00      0.00      0.00      0.00     99.97
09:50:01 AM       1      0.00      0.00      0.03      0.01      0.00      0.00      0.00      0.00      0.00     99.96
09:50:01 AM       2      0.02      0.00      0.06      0.00      0.00      0.00      0.00      0.00      0.00     99.92
09:50:01 AM       3      0.01      0.00      0.07      0.00      0.00      0.00      0.00      0.00      0.00     99.92
10:00:01 AM     all      0.00      0.00      0.03      0.02      0.00      0.00      0.00      0.00      0.00     99.94
10:00:01 AM       0      0.00      0.00      0.03      0.00      0.00      0.00      0.00      0.00      0.00     99.96
10:00:01 AM       1      0.00      0.00      0.04      0.01      0.00      0.00      0.00      0.00      0.00     99.95
10:00:01 AM       2      0.01      0.00      0.03      0.01      0.00      0.00      0.00      0.00      0.00     99.96
10:00:01 AM       3      0.00      0.00      0.03      0.08      0.00      0.00      0.00      0.00      0.00     99.88
10:10:01 AM     all      0.00      0.00      0.04      0.00      0.00      0.00      0.00      0.00      0.00     99.95
10:10:01 AM       0      0.00      0.00      0.03      0.00      0.00      0.00      0.00      0.00      0.00     99.96
10:10:01 AM       1      0.00      0.00      0.03      0.01      0.00      0.00      0.00      0.00      0.00     99.96
10:10:01 AM       2      0.00      0.00      0.04      0.00      0.00      0.00      0.00      0.00      0.00     99.96
10:10:01 AM       3      0.01      0.00      0.06      0.00      0.00      0.00      0.00      0.00      0.00     99.93
Average:        all      0.01      0.00      0.04      0.01      0.00      0.00      0.00      0.00      0.00     99.94
Average:          0      0.00      0.00      0.03      0.00      0.00      0.00      0.00      0.00      0.00     99.96
Average:          1      0.00      0.00      0.03      0.01      0.00      0.00      0.00      0.00      0.00     99.96
Average:          2      0.01      0.00      0.04      0.00      0.00      0.00      0.00      0.00      0.00     99.95
Average:          3      0.01      0.00      0.05      0.03      0.00      0.00      0.00      0.00      0.00     99.91

09:40:01 AM    proc/s   cswch/s
09:50:01 AM      0.95    375.43
10:00:01 AM      0.40    355.37
10:10:01 AM      0.41    362.94
Average:         0.59    364.58

09:40:01 AM  pswpin/s pswpout/s
09:50:01 AM      0.00      0.00
10:00:01 AM      0.00      0.00
10:10:01 AM      0.00      0.00
Average:         0.00      0.00

09:40:01 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
09:50:01 AM      0.59      1.56    308.51      0.01    151.75      0.00      0.00      0.00      0.00
10:00:01 AM      7.35      0.84     85.22      0.01     95.23      0.00      0.00      0.00      0.00
10:10:01 AM      0.28      0.83     91.07      0.00     96.80      0.00      0.00      0.00      0.00
Average:         2.74      1.08    161.60      0.01    114.59      0.00      0.00      0.00      0.00

09:40:01 AM       tps      rtps      wtps   bread/s   bwrtn/s
09:50:01 AM      0.25      0.02      0.23      1.17      3.12
10:00:01 AM      0.24      0.10      0.14     14.69      1.68
10:10:01 AM      0.17      0.01      0.15      0.56      1.67
Average:         0.22      0.04      0.18      5.48      2.16

09:40:01 AM   frmpg/s   bufpg/s   campg/s
09:50:01 AM    -16.36      0.00      0.38
10:00:01 AM     -3.46      0.00      1.73
10:10:01 AM     -0.07      0.00      0.08
Average:        -6.63      0.00      0.73

09:40:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
09:50:01 AM   3396904    629248     15.63      2124    207728    628220      7.77    162324    185704         4
10:00:01 AM   3388604    637548     15.84      2124    211888    631488      7.81    165676    189524         4
10:10:01 AM   3388424    637728     15.84      2124    212076    631488      7.81    165920    189644         4
Average:      3391311    634841     15.77      2124    210564    630399      7.79    164640    188291         4

09:40:01 AM kbswpfree kbswpused  %swpused  kbswpcad   %swpcad
09:50:01 AM   4063228         0      0.00         0      0.00
10:00:01 AM   4063228         0      0.00         0      0.00
10:10:01 AM   4063228         0      0.00         0      0.00
Average:      4063228         0      0.00         0      0.00

09:40:01 AM kbhugfree kbhugused  %hugused
09:50:01 AM         0         0      0.00
10:00:01 AM         0         0      0.00
10:10:01 AM         0         0      0.00
Average:            0         0      0.00

09:40:01 AM dentunusd   file-nr  inode-nr    pty-nr
09:50:01 AM     11644      2464     29413        15
10:00:01 AM     11721      2528     29456        15
10:10:01 AM     11753      2560     29464        15
Average:        11706      2517     29444        15

09:40:01 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
09:50:01 AM         0       203      0.00      0.01      0.04         0
10:00:01 AM         0       205      0.00      0.01      0.04         0
10:10:01 AM         0       204      0.00      0.01      0.04         0
Average:            0       204      0.00      0.01      0.04         0

09:40:01 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
09:50:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM    dev8-0      0.25      1.17      3.12     16.96      0.00      0.14      0.10      0.00
09:50:01 AM  dev253-0      0.28      1.17      3.12     15.44      0.00      0.14      0.09      0.00
09:50:01 AM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM  dev253-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM    dev8-0      0.24     14.69      1.68     67.77      0.00      6.65      5.65      0.14
10:00:01 AM  dev253-0      0.26     14.69      1.68     63.39      0.00      6.26      5.28      0.14
10:00:01 AM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM  dev253-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM    dev8-0      0.17      0.56      1.67     13.24      0.00      3.60      3.56      0.06
10:10:01 AM  dev253-0      0.18      0.56      1.67     12.38      0.00      3.37      3.33      0.06
10:10:01 AM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM  dev253-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:       dev8-0      0.22      5.48      2.16     34.53      0.00      3.39      3.00      0.07
Average:     dev253-0      0.24      5.48      2.16     31.96      0.00      3.16      2.78      0.07
Average:     dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:     dev253-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

09:40:01 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
09:50:01 AM vethe931c85      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM     ens32      1.65      2.29      0.20      0.31      0.00      0.00      0.00
09:50:01 AM ens32.200      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM ens32.100      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM        lo      1.47      1.47      0.14      0.14      0.00      0.00      0.00
09:50:01 AM docker_gwbridge      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM vethe931c85      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM     ens32      0.57      1.42      0.05      0.10      0.00      0.00      0.00
10:00:01 AM ens32.200      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM ens32.100      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM        lo      1.47      1.47      0.14      0.14      0.00      0.00      0.00
10:00:01 AM docker_gwbridge      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM vethe931c85      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM     ens32      1.30      1.81      0.11      0.21      0.00      0.00      0.00
10:10:01 AM ens32.200      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM ens32.100      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM        lo      1.49      1.49      0.14      0.14      0.00      0.00      0.00
10:10:01 AM docker_gwbridge      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    vethe931c85      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        ens32      1.17      1.84      0.12      0.20      0.00      0.00      0.00
Average:    ens32.200      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    ens32.100      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:           lo      1.48      1.48      0.14      0.14      0.00      0.00      0.00
Average:    docker_gwbridge      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

09:40:01 AM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
09:50:01 AM vethe931c85      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM     ens32      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM ens32.200      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM ens32.100      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM docker_gwbridge      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:50:01 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM vethe931c85      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM     ens32      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM ens32.200      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM ens32.100      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM docker_gwbridge      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM vethe931c85      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM     ens32      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM ens32.200      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM ens32.100      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM docker_gwbridge      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    vethe931c85      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        ens32      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    ens32.200      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    ens32.100      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    docker_gwbridge      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

09:40:01 AM    call/s retrans/s    read/s   write/s  access/s  getatt/s
09:50:01 AM      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM      0.00      0.00      0.00      0.00      0.00      0.00
Average:         0.00      0.00      0.00      0.00      0.00      0.00

09:40:01 AM   scall/s badcall/s  packet/s     udp/s     tcp/s     hit/s    miss/s   sread/s  swrite/s saccess/s sgetatt/s
09:50:01 AM      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:00:01 AM      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:10:01 AM      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

09:40:01 AM    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
09:50:01 AM      1430        19         3         2         0         0
10:00:01 AM      1430        19         3         2         0         0
10:10:01 AM      1430        19         3         2         0         0
Average:         1430        19         3         2         0         0
[root@logstash ~]#
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.
  • 140.
  • 141.
  • 142.
  • 143.
  • 144.
  • 145.
  • 146.
  • 147.
  • 148.
  • 149.
  • 150.
  • 151.
  • 152.
  • 153.
  • 154.
  • 155.
  • 156.
  • 157.
  • 158.
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.
  • 167.
  • 168.
  • 169.
  • 170.
  • 171.
  • 172.
  • 173.
  • 174.
  • 175.
  • 176.
  • 177.
  • 178.
  • 179.
  • 180.
  • 181.
  • 182.
  • 183.
  • 184.
  • 185.
  • 186.
  • 187.
  • 188.
  • 189.