Sida 1 av 1

rrdtool file.rrd problem

Postat: 12 juli 2019, 18:31:50
av Oltronix
Jag har några rrdtool databaser file_name.rrd på en RaspberryPi (RPI) som jag flyttar till en PC med Umbuntu. Då funger inte filen. Jag får
"ERROR: reached EOF while loading header rrd->ds_def" om jag ger ett kommando tex "rrdtool info file_name.rrd" på Ubuntu. Jag har kollat filen på RPI och dess kopia på Ubuntu med hexdump. De verkar vara helt lika. När jag kopierar tillbaks filen till RPI fungerar den där. Så det kan inte vara så Umbuntu gör filen korrupt. "ERROR: reached EOF while loading header rrd->ds_def" indikerar korrpt rrd-file enligt nätet.

PCn är en Intel® Core™ i5-4590 CPU @ 3.30GHz × 4. Jag vet om är byteordningen mellan RPI och PCn är olika och om detta skulle kunna vara orsaken till mitt problem.

Re: rrdtool file.rrd problem

Postat: 12 juli 2019, 18:46:21
av guckrum
Jag vet inget om detta men en snabb googling indikerar att rrd-formatet beror av både ordlängd och endian. Trist. Så du skall nog hitta något sätt att "exportera" din befintliga databas till något textformat, som du sedan kan importera igen på målplatformen. Gissar jag.

Re: rrdtool file.rrd problem

Postat: 12 juli 2019, 19:10:42
av Oltronix
Tack :)
Jag körde "rrdtool dump" på RPI och sedan "rrdtool restore" på Ubuntu. Då fungerade det. Det var första gången jag haft byteorder-problem. Hanterar för det mesta textfiler. Tydligen var hexdump inget bra verktyg att kolla byteordning. Vad skulle jag använt istället?

Re: rrdtool file.rrd problem

Postat: 12 juli 2019, 19:29:22
av arvidb
För att kolla om två filer är exakt lika är 'diff -q' bra. Säger inget om filerna är lika, annars nåt i stil med "Files X and Y differ".

Re: rrdtool file.rrd problem

Postat: 12 juli 2019, 19:30:44
av arvidb
... 'file' är också ett bra verktyg som eventuellt kan tala om om filen är big endian eller little endian. Eventuellt.

Re: rrdtool file.rrd problem

Postat: 12 juli 2019, 20:26:18
av Lennart Aspenryd
Ja, att köra ut databasen ur det gamla som en fil känns helt rätt.
Egentligen borde man nästa göra det ibland på vissa statiska filer så att det sökmässigt ligger heltt rätt i den vanligaste sökordning.
Hoppas att det blir rätt.
Många SQL databaser kan ju byggas upp helt med hjälp av en inläst fil.
Trygghet!

Re: rrdtool file.rrd problem

Postat: 12 juli 2019, 20:49:25
av Oltronix
Kommandot "file" var bra:

Kod: Markera allt

erik@HP:~/projekt/rrdtool$ file database8.rrd 
database8.rrd: RRDTool DB version 0003 64bit aligned little-endian 32bit long (armel/mipsel)
erik@HP:~/projekt/rrdtool$ file database44.rrd 
database44.rrd: RRDTool DB version 0003 64bit aligned little-endian 64bit long (alpha/amd64/ia64)
database44.rrd är fungerande "Umbuntu format". database8.rrd är av RPI-format

Re: rrdtool file.rrd problem

Postat: 12 juli 2019, 22:18:07
av guckrum
Många SQL databaser kan ju byggas upp helt med hjälp av en inläst fil.
Trygghet!
Ja! Och om möjligt bygg databasen från en fil. Exempel: logga inte direkt till en databas, utan logga till en fil. Skapa databas från filen om behov föreligger.

Re: rrdtool file.rrd problem

Postat: 14 juli 2019, 20:12:41
av Sado
guckrum skrev:Och om möjligt bygg databasen från en fil. Exempel: logga inte direkt till en databas, utan logga till en fil. Skapa databas från filen om behov föreligger.
Fast Round Robin är ju till för just loggning.

Re: rrdtool file.rrd problem

Postat: 14 juli 2019, 20:55:52
av guckrum
Ja, man behöver inte göra så, det är bara ett förslag som visat sig framgångsrikt, dessutom "senaste heta" via Kafka osv... rrd fyller absolut en funktion, speciellt i system med begränsat lagringsutrymme där man inte är intresserad av full historik.