如何将 XML 个文件的目录转换为 RRD 文件

How to convert a directory of XML files in to RRD Files

我需要从我现有的 xml 文件中恢复 rrd 文件。所以我使用了以下简单的 bash 脚本。

#!/bin/bash

for i in /home/dump_xml/*.xml;
do
rrdtool restore $i /home/rrd_new/"${i%.xml}".rrd;
done

由于这个错误,我无法执行以下脚本,

ERROR: Could not create xml reader for: /home/dump_xml/*.xml

但我可以一个一个地恢复文件。有人可以帮我解决这个问题吗?

当您使用时:

for i in /home/dump_xml/*.xml
do
    echo "$i"
done

你会看到 $i 等于:

  • /home/dump_xml/a.xml
  • /home/dump_xml/b.xml

你看,它包含路径。因此,您的 rddtool 将尝试将结果写入 /home/dump_xml/home/dump_xml/a.rrd

你必须做的:

#!/bin/bash

for i in xml/*.xml
do
    filename=$(basename "$i")
    rrdtool restore "$i" /home/rrd_new/"${filename%.xml}".rrd;
done

不要忘记 double-quote 你的变量扩展。