用在将collectd生成rrd文件转换成xml中。由于在collectd服务器端会生成各个客户端文件,存放在/var/lib/collectd/rrd下的以各自客户端机器命名的子文件中。
需要用脚本遍历/var/lib/collectd/rrd下子文件中各个需要转换的rrd文件,将其转换为xml。脚本如下:
#!/bin/bash
echo "start...">>/usr/test.txt
date >> /usr/test.txt
function dir_list(){
for file in ` ls $1 `
do
/usr/bin/rrdtool dump $1"/"$file"/cpu-0/cpu-idle.rrd">$1"/"$file"/cpu-0/cpu-idle.xml"
/usr/bin/rrdtool dump $1"/"$file"/interface/if_packets-eth0.rrd">$1"/"$file"/interface/if_packets-eth0.xml"
/usr/bin/rrdtool dump $1"/"$file"/memory/memory-used.rrd">$1"/"$file"/memory/memory-used.xml"
/usr/bin/rrdtool dump $1"/"$file"/load/load.rrd">$1"/"$file"/load/load.xml"
echo $1>>/usr/test.txt
echo $file>>/usr/test.txt
done
echo "循环结束">>/usr/test.txt
}
INIT_PATH="/var/lib/collectd/rrd"
dir_list $INIT_PATH
echo "done">>/usr/test.txt
date >> /usr/test.txt
这里由于其实文件夹下均为文件夹,所以没有进行判断是否是文件夹。