web-dev-qa-db-ja.com

WindowsからLinuxへのCactiの移行

CactiをWindowsからLinuxに移行していますが、少し問題が発生しました。

Windowsサーバーは古いバージョンのCactiを実行しているので、バージョン0.8に移行します。

データベースを新しいサーバーに移植することができ、インストーラーは正常に実行され、テーブルは新しいバージョンに移行されました。 RRAフォルダー(古いRRDファイルを含む)をWindowsサーバーからLinuxサーバーの新しいバージョンにコピーしましたが、グラフが表示されません。

コマンドラインからpoll.phpを手動で実行すると、CactiがRRDファイルを更新しようとしたときにこのエラーが明らかになります。

ERROR: reached EOF while loading header rrd->ds_def

これを引き起こしている可能性のあるアイデアはありますか?

前もって感謝します!

クリス

1
leftcase

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
3
NathanG