CactiをWindowsからLinuxに移行していますが、少し問題が発生しました。
Windowsサーバーは古いバージョンのCactiを実行しているので、バージョン0.8に移行します。
データベースを新しいサーバーに移植することができ、インストーラーは正常に実行され、テーブルは新しいバージョンに移行されました。 RRAフォルダー(古いRRDファイルを含む)をWindowsサーバーからLinuxサーバーの新しいバージョンにコピーしましたが、グラフが表示されません。
コマンドラインからpoll.phpを手動で実行すると、CactiがRRDファイルを更新しようとしたときにこのエラーが明らかになります。
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 /b d:\Old_Cacti\rra_working_copy\*.rrd`) do rrdtool dump %i > %i.xml
Linuxボックスに移動する前に、変換されたファイルを別の場所にコピーして、タール/圧縮します。
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