前回基本となるデータ取得用スクリプトを作りましたがそれに修正を加えました。
データ抽出期間を指定する方法です。
私のzabbixは時間がunixtimeなのですが仕様なのかな・・・?
あまり気になる所じゃなかったのでそんなもんだとしていましたが
スクリプトで時間指定する場合にいちいちunixtime計算していると面倒なので
スクリプトに組み込んで通常の日時で指定できるようにしています。
※追記部分は太文字にしています
———————————————————————————
#!/bin/sh
#
#####################################################################
DATE=`date +%Y%m%d`
## pickup itemid select
echo ” please input id number ”
read id
echo ” please input table ”
read table
## Period designation
echo “please input the opening time year-mounth-day time ”
read opentime
echo “please input the closing time year-mounth-day time ”
read closetime
## unixtime changed
starttime=`date +%s –date “${opentime}”`
stoptime=`date +%s –date “${closetime}”`
## id check
CHECK=`mysql –user=zabbix –password=zabbix zabbix -N -s -e ” select itemid fro
m items where itemid=$id ;”`
CHECK=`expr $CHECK + 0`
## exec
if [ $CHECK -gt 0 ] ; then
mysql –user=zabbix –password=zabbix zabbix -e “select from_unixtime(clock),val
ue from ${table} where itemid=${id} and clock between ${starttime} and ${stoptime} ;” > csvfile/${DATE}_${id}.csv
else
echo ” No id !!”
fi
exit
———————————————————————————–
時間が空の場合は全てのログにするようにしようかなぁと思いましたが
今までの運用上時間を指定しない事がないので作りませんでした。
もし作るとしたらid checkのような感じでopentimeとclosetimeが空の場合は
時間設定のないsql文を実行するようにすればいいだけです。
わざわざ書く必要が無いくらい簡単です。
なもんで書いてません(`・ω・´)