linux中使用rrdtool监控人民币汇率

所谓的“Round Robin” 其实是一种存储数据的方式,使用固定大小的空间来存储数据,并有一个指针指向最新的数据的位置,下面看一个rrdtool监控人民币汇率的例子.

1、使用rrdtool建立rrd文件,对人民币对美元汇率每20秒进行一次抓取(setp = 20s).

  1. rrdtool create USDCNY.rrd \
  2. --start `date +%s` \
  3. --step 20 \
  4. DS:content:GAUGE:100:0:U \
  5. RRA:AVERAGE:0:1:400

2、 通过Yahoo提供的汇率查询解决取得当前汇率,并存入rrd文件.

  1. #!/bin/bash
  2. PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
  3. rrdfile='/tmp/361way/USDCNY.rrd'
  4. while true
  5. do
  6. timestamp=`date +%s`
  7. rmbrate=`curl 'http://download.finance.yahoo.com/d/quotes.csv?s=USDCNY=X&f=sl1d1t1&e=.csv' 2>/dev/null | awk -F, '{print $2}'`
  8. rrdtool update $rrdfile ${timestamp}:${rmbrate}
  9. sleep 19
  10. echo 'get now'
  11. done

3、使用php脚本展示人民币汇率rrd图

  1. # cat rmb.php
  2. <?php
  3. header("Content-type:image/png");
  4. $cmd='
  5. /usr/bin/rrdtool graph - \
  6. -h 120 -w 500 \
  7. --start now-1h \
  8. -v "RMB/USD" --title "RMB-USD Rate" \
  9. DEF:rmbrate=/tmp/361way/USDCNY.rrd:content:AVERAGE \
  10. LINE:rmbrate#00CF00FF:"RMB Rate" \
  11. COMMENT:"\n"
  12. '; //phpfensi.com
  13. passthru($cmd);
  14. ?>