我正在将Cacti从Windows迁移到Linux,而且遇到了一些问题。
Windows服务器正在运行旧版本的Cacti,所以我将它迁移到版本0.8。
我设法将数据库移植到新的服务器上,安装程序成功运行,表已经迁移到新的版本。 我已经从Windows服务器复制RRA文件夹(包含旧的RRD文件)到Linux服务器上的新版本,但graphics不显示。
当Cacti尝试更新RRD文件时,从命令行手动运行poll.php会显示此错误:
ERROR: reached EOF while loading header rrd->ds_def
任何想法可能是什么原因造成的?
提前致谢!
克里斯
您的RRD文件中有Windows行结尾,因此Linux上的cacti / rrdtool无法读取它们。
接受的方法是使用rrddump将RRD文件转换为XML,然后在目标机器上使用rrdrestore将其恢复到RRD。 在RRD上运行dos2unix可能会解决这个问题,但是我从来没有尝试过。
– 由原创海报编辑 –
以防万一他们需要,以下是一些具体情况:
Windows机器
将rrd文件隐藏到xml。
for /F "usebackq" %i in (`dir /s /bd:\Old_Cacti\rra_working_copy\*.rrd`) do rrdtool dump %i > %i.xml
在转移到Linux机器之前,将转换的文件复制到其他地方进行tar /压缩
copy d:\Old_Cacti\rra_working_copy\*.xml d:\Old_Cacti\converted_rra_files\
Linux机器
切换到包含已转换(xml)文件的目录,并将其转换回.rrd文件。
find . -exec rrdtool restore {} {}.rrd \;
将新转换的文件复制到rra目录中。
cp *.rrd.xml.rrd /var/www/html/rra/
转到rra目录并将文件重命名为* .rrd
rename .rrd.xml.rrd .rrd *.rrd.xml.rrd