我有一个我正在尝试创建的 RRD 数据库,并且我编写了几个循环来构建命令,它工作正常,并产生预期的输出。当我实际尝试在 Python 中运行 rrdtool.create 命令时,问题就出现了。这个循环产生一个字符串,我们称之为它rrdStr
,包含以下内容:
'"0x04.rrd", "--step","5",
"DS:TEMP:GAUGE:10:0:100",
"DS:HUMIDITY:GAUGE:10:0:100",
"DS:LIGHT:GAUGE:10:0:1024",
"DS:POT:GAUGE:10:0:1024",
"RRA:AVERAGE:0.5:1:17142",
"RRA:MIN:0.5:1:17142",
"RRA:MAX:0.5:1:17142",
"RRA:AVERAGE:0.5:12:7200",
"RRA:MIN:0.5:12:7200",
"RRA:MAX:0.5:12:7200",
"RRA:AVERAGE:0.5:60:8640",
"RRA:MIN:0.5:60:8640",
"RRA:MAX:0.5:60:8640",
"RRA:AVERAGE:0.5:360:17532",
"RRA:MIN:0.5:360:17532",
"RRA:MAX:0.5:360:17532"'
据我所知,所有引号和换行符都已正确转义。
如果我像这样传递rrdtool.create
字符串变量:rrdtool.create(rrdStr)
,我得到输出
rrdtool.error: you must define at least one Round Robin Archive
但是,如果我将上面的输出直接复制并粘贴到rrdtool.create()
函数中,它会像预期的那样工作,并创建数据库。
知道是什么原因造成的以及如何解决吗?