是非とも見なかったことに…
スポンサーサイト

一定期間更新がないため広告を表示しています

- - -
sed awk bash sar
sarSoftware Design に便利そうな bash スクリプトがあったのだが、その記事の筆者が属する会社のフリーウェアを使う形のものだった。
そのフリーウェアを使うのはなんだかとても負けな気がしたので sed, awk で回避してみた。
SSH 周りは予め鍵登録しておいてください。また、スクリプト内の「width:210px;」部分やパスなどは適宜変更してください。

実際のスクリプトは以下。
各リモートサーバ上で sar を実行し、結果を SVG にする bash スクリプト
#!/bin/bash -xv exec 2> /tmp/log PATH=/usr/local/bin:$PATH array=( user1@www1 user2@www2 user3@www3 user4@www4 ) port="22" ofile="/Users/hogehoge/Sites/sar.html" cat << FIN > $ofile <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>サーバ負荷状況 (各 sar 調べ)</title> <style type="text/css"> svg { width:210px; height:1280px; border:1px solid #ccc; } </style> </head> <body> <div> FIN for host in ${array[@]}; do ssh "$host" -p "$port" 'LANG=C sar -q' | grep "^..:..:.." | sed 's/^¥(..¥):¥(..¥):../¥1時¥2分/' | grep -v ldavg | tail -r | awk '{print NR*20+20,$1,int($4*40),$4,NR*20+7,NR*20+19}' > /tmp/tmp-sar echo "<svg xmlns=¥"http://www.w3.org/2000/svg¥">" >> $ofile echo "<text x=¥"0¥" y=¥"20¥" font-size=¥"20¥">$host</text>" >> $ofile #ここ↓は長い一行です cat /tmp/tmp-sar | awk '{printf("<text x=¥"0¥" y=¥"%s¥" font-size=¥"14¥">%s</text>¥n<rect x=¥"68¥" y=¥"%d¥" width=¥"%s¥" height=¥"15¥" fill=¥"skyblue¥" stroke=¥"black¥" />¥n<text x=¥"70¥" y=¥"%s¥" font-size=¥"10¥" fill=¥"red¥">%s</text>¥n", $1, $2, $5, $3, $6, $4)}' >> $ofile echo "</svg>¥n" >> $ofile done echo "</div></body></html>" >> $ofile rm -f /tmp/tmp-* exit 0
Unix - -
| 1/1 |