1
我現在有一個shell腳本的代碼段運行,像這樣的遠程shell命令:遠程shell,腳本的輸出更改爲csv
grep -v "^[ ]*#" ${CONFIG_FILE} |
while read SERVER USER LOGDIR
do
{
echo "Stats for" $date
echo "${USER}"
echo "iTunes:"
time /bob/shared/ted/remote/rssh ${SERVER} "gzgrep -c \"iTunes Music\" ${LOGDIR}/*${date}*.gz | awk '-F:' '{total+=\$NF}END{print \"Total=\" total}'" 2>&1
echo
echo "Default"
time /bob/shared/ted/remote/rssh ${SERVER} "gzgrep -c \"Default Player\" ${LOGDIR}/*${date}*.gz | awk '-F:' '{total+=\$NF}END{print \"Total=\" total}'" 2>&1
echo
echo "The Rest"
time /bob/shared/ted/remote/rssh ${SERVER} "gzgrep -c \"Junk\" ${LOGDIR}/*${date}*.gz | awk '-F:' '{total+=\$NF}END{print \"Total=\" total}'" 2>&1
} </dev/null 2>&1
done 2>${ERROR_FILE} >${STATS_FILE}
這給了我輸出像這樣:
Stats for 20120628
Rich
iTunes:
Total=0
real 0m2.09s
user 0m0.22s
sys 0m0.03s
Default:
Total=0
real 0m2.03s
user 0m0.23s
sys 0m0.00s
The Rest:
Total=0
real 0m2.03s
user 0m0.23s
sys 0m0.00s
Stats for 20120628
Ian
iTunes:
Total=2
real 0m21.44s
user 0m0.22s
sys 0m0.00s
Default:
Total=2
real 0m21.48s
user 0m0.21s
sys 0m0.02s
The Rest:
Total=0
real 0m2.03s
user 0m0.23s
sys 0m0.00s
等等...
我想雖然是這樣的輸出以CSV格式:
Rich,0,0,0
Ian,2,2,0
修改上述代碼以獲得我需要的輸出格式的最簡單方法是什麼?
謝謝!
難道你不能只爲每個服務器做一個rssh,把'grep'目前正在執行的功能放到'awk'腳本中嗎? –
當然,但他要求儘可能小的修改,所以我沒有試圖使整個明智。 – lynxlynxlynx
好點查爾斯!嘿嘿,不能看到樹木的木頭;)乾杯! –