将Cacti从Windows迁移到Linux

我正在将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