さまざまなサーバーで監視スクリプトを作成中です。
私の要件は、両方のサーバーから 30 分ごとに日付を収集し、データを結合してメールで送信することです。
今、私が立ち往生しているのは、データをcsvファイルに取得するときに、列見出しを追加する必要があることです。これはできません。
srv1 のコード スニペット
#!/bin/bash
EAI=`netstat | grep 16001 | wc -l`
Date=`date`
DM=`psme | grep -i DM_EAI | wc -l`
while true; do
echo $Date $EAI
sleep 1800 done > eai_js_srv1.csv
while true; do
echo $Date $DM
sleep 1800 done > dm_eai_srv1.csv
srv2 のコード スニペット
#!/bin/bash
EAI=`netstat | grep 16001 | wc -l`
Date=`date`
DM=`psme | grep -i DM_EAI | wc -l`
while true;
do echo $Date $DM sleep 1800
done > eai_js_srv2.csv
while true;
do echo $Date $EAI sleep 1800
done > dm_eai_srv2.csv
この後、以下のように 2 つのサーバーからのファイルを結合します。
join -a1 -a2 eai_js_srv1.csv eai_js_srv2.csv > eai_js_counts.csv
join -a1 -a2 dm_eai_srv1.csv dm_eai_srv2.csv > dm_eai_counts.csv
whileループを使用しているため、データは30分ごとに同じファイルに追加されるため、次のような出力が必要です。
eai_js_counts.csv:
Timestamp BRM Servers
611 610
1/28/2013 02:00 AM PST 176 99
1/28/2013 06:00 AM PST 150 115
dm_eai_counts.csv:
Timestamp BRM Servers
611 610
1/28/2013 02:00 AM PST 4 5
1/28/2013 06:00 AM PST 4 5