-3

コマンド、grep、awk、crontab などの多くの UNIX を認識する NetScaler FreeBSD を使用しています。

次のコマンドを実行して、システムに接続しているユーザーの数を取得します

#> 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 スクリプト ウィザードに感謝します!

前もって感謝します!

4

1 に答える 1