Я переношу Cacti с Windows на Linux и столкнулся с небольшой проблемой.
На сервере Windows установлена более старая версия Cacti, поэтому я переношу ее на версию 0.8.
Мне удалось перенести базу данных на новый сервер, установщик успешно запустился, и таблицы были перенесены в новую версию. Я скопировал папку RRA (содержащую старые файлы RRD) с сервера Windows в новую версию на сервере Linux, но графики не отображаются.
При ручном запуске poll.php из командной строки эта ошибка обнаруживается, когда Cacti пытается обновить файлы RRD:
ERROR: reached EOF while loading header rrd->ds_def
Есть идеи, что может быть причиной этого?
Заранее спасибо!
Крис
У вас есть окончания строк Windows в ваших файлах RRD, поэтому cacti / rrdtool в Linux не может их прочитать.
Принятый метод - использовать rrddump для преобразования файлов RRD в XML, а затем использовать rrdrestore на целевой машине, чтобы вернуть их в RRD. Возможно, запуск dos2unix на ваших RRD решит эту проблему, но я никогда не пробовал.
- Редактировать оригинальным постером -
На всякий случай вот некоторые особенности:
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