我正在使用 NetScaler FreeBSD,它可以识别许多 UNIX,例如命令、grep、awk、crontab 等。
我运行以下命令来获取我们在系统上拥有的连接用户数
#> nsconmsg -g aaa_cur_ica_conn -d stats
输出(编号行):
Line1: Displaying current counter value information
Line2: NetScaler V20 Performance Data
Line3: NetScaler NS11.1: Build 63.9.nc, Date: Oct 11 2019, 06:17:35
Line4:
Line5: reltime:mili second between two records Sun Jun 28 23:12:15 2020
Line6: Index reltime counter-value symbol-name&device-no
Line7: 1 2675410 605 aaa_cur_ica_conn
…
…
从上面的输出 - 我只需要连接用户的数量(表示在第 7 行,第 3 列(605
准确地说),以及主机名和时间(运行脚本)
现在,为了提取这个重要的第 3 列编号,即605
,连同主机名和收集数据的时间 - 我编写了以下脚本:
printf '%s - %s - %s\n' "$(hostname)" "$(date '+%H:%M')" "$(nsconmsg -g aaa_cur_ica_conn -d stats | grep aaa_cur_ica_conn | awk '{print $3}')"
结果很完美,显示主机名、时间和连接用户数如下:
Hostname - 09:00 – 605
现在任何人都可以阐明我的方法:
- 每天运行这个脚本 - 早上 5 点到下午 5 点(12 小时)?
- 每次脚本运行时 - 在远程 Unix 共享上附加一个文件并输出?
如果是一个挑战,我很感激这可能有点......但是会感谢任何可以创造魔法的 bash 脚本向导!
提前致谢!