我正在编写不同服务器上的监控脚本。
我的要求是每 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