コマンド、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 スクリプト ウィザードに感謝します!
前もって感謝します!