Aw: Re: Logdateien plötzlich binär laut grep nach Upgrade
Ich hab es auch nur irgendwo gelesen, da ich dasselbe Problem bei der Analyse von zusammengefassten Logfiles hatte. Immer mal wieder waren null-Bytes enthalten. Der bzw. die Rechner wurden auch regelmäßig nicht korrekt heruntergefahren. Ich hatte noch eine andere Filtermethode, finde aber das mit cat einfacher und funktioniert. Grüße Bernd Gesendet: Donnerstag, 14. Februar 2019 um 22:21 Uhr Von: "Heiko Schlittermann" An: lug-dd@mailman.schlittermann.de Betreff: Re: Logdateien plötzlich binär laut grep nach Upgrade "Bernd Müller" (Do 14 Feb 2019 21:20:35 CET): > > Das Problem mit den Log-Dateien entsteht, wenn der Prozess Speicher für das > Logfile angefordert hat, aber aus irgendeinem Grund dann doch nicht in die > Datei schreibt. In diesem Fall werden einfach Null-Bytes in das Logfile Du meinst, syslog-ng alloziert schon mal genug Platz, um dann anschließend reinzuschreiben? Mit mmap(2), oder einfach direkt im File mit lseek(2)? Das hielte ich für sehr gewagt, weil dann Tools, die am Ende des Logfiles mitlesen möchten, ein Problem hätten. Ist das ein xfs, was Du da verwendest? > Ich möchte aber lieber wissen, was da warum passiert ist. Ich möchte nicht > mitten im Monat die Logs rotieren. Ich kann nicht alle Helfer pauschal auf > grep -a umstellen. Haben diese Files auffällige Größen (irgendwelche Vielfaches von 4k oder so) -- Heiko
Re: Logdateien plötzlich binär laut grep nach Upgrade
On Fri, Feb 15, 2019 at 11:11:18AM +0100, Heiko Schlittermann wrote: > Christian Perle (Do 14 Feb 2019 23:11:11 CET): > > > ns2:~# file /var/log/syslog > > > /var/log/syslog: ASCII text, with very long lines > > > > Wenn eine Datei nur lang genug ist, erkennt file nicht, wenn sich > > irgendwo weiter hinten Binaermuell darin befindet. Probeweise habe > > ich meine /var/log/syslog (aktuell 3 MB) nach /tmp kopiert und in > > die Kopie ab Offset 150 eine Folge von 8000 Nullbytes geschrieben: > > File schaut nur am Anfang nach magic patterns, aus dem Bauch würde ich > sagen, daß schon nach ca 1k Schluß ist. Ich weiß nicht, ob es führende > binäre Nullen „skippen“ würde, glaube es aber nicht. man 1 file man 5 magic da passiert viel "Magie" :-) Default für die maximale Anzahl an Bytes ist laut der manpage von file 1 MiB, ob aber überhaupt soviel gelesen wird, hängt aber vom Dateityp ab. In der Definition für libmagic kann man für bestimmte Tests Offsets angeben, wenn die magischen Bytes erst später in einer Datei kommen, für den Fall von oben wird das aber wahrscheinlich nicht helfen. Das Überspringen von Null-Bytes hab ich nicht gefunden. Viele Grüße Jan -- Jan Dittberner - Debian Developer GPG-key: 4096R/0xA73E008FB8DD 2009-05-10 B2FF 1D95 CE8F 7A22 DF4C F09B A73E 0055 558F B8DD https://jan.dittberner.info/ signature.asc Description: PGP signature
Re: Logdateien plötzlich binär laut grep nach Upgrade
Christian Perle (Do 14 Feb 2019 23:11:11 CET): > > ns2:~# file /var/log/syslog > > /var/log/syslog: ASCII text, with very long lines > > Wenn eine Datei nur lang genug ist, erkennt file nicht, wenn sich > irgendwo weiter hinten Binaermuell darin befindet. Probeweise habe > ich meine /var/log/syslog (aktuell 3 MB) nach /tmp kopiert und in > die Kopie ab Offset 150 eine Folge von 8000 Nullbytes geschrieben: File schaut nur am Anfang nach magic patterns, aus dem Bauch würde ich sagen, daß schon nach ca 1k Schluß ist. Ich weiß nicht, ob es führende binäre Nullen „skippen“ würde, glaube es aber nicht. -- Heiko signature.asc Description: PGP signature
Re: Logdateien plötzlich binär laut grep nach Upgrade
Hallo Ronny, On Thu, Feb 14, 2019 at 17:04:31 +0100, Ronny Seffner wrote: > > Um welche Logdateien geht es genau? > > > Zum Beispiel auth.log, syslog oder auch mail.log. Also alles was durch > syslog-ng verwaltet wird. Hmm, ich kann mich nicht erinnern, dass syslog-ng auf Debian der Default-Syslogserver waere. Eigentlich ist das doch rsyslogd? > ns2:~# file /var/log/syslog > /var/log/syslog: ASCII text, with very long lines Wenn eine Datei nur lang genug ist, erkennt file nicht, wenn sich irgendwo weiter hinten Binaermuell darin befindet. Probeweise habe ich meine /var/log/syslog (aktuell 3 MB) nach /tmp kopiert und in die Kopie ab Offset 150 eine Folge von 8000 Nullbytes geschrieben: $ ls -l syslog -rw-r- 1 chris chris 3145267 Feb 14 22:58 syslog $ dd if=/dev/zero of=syslog conv=notrunc bs=1 seek=150 count=8000 8000+0 records in 8000+0 records out 8000 bytes (8,0 kB, 7,8 KiB) copied, 0,0191606 s, 418 kB/s $ file -i syslog syslog: text/plain; charset=us-ascii Voila, file sagt "ascii", obwohl 8000 Nullbytes drin sind. Gruss, Christian -- Christian Perlechris AT linuxinfotag.de 010111 http://chris.silmor.de/ 101010 LinuxGuitarKitesBicyclesBeerPizzaRaytracing
Re: Logdateien plötzlich binär laut grep nach Upgrade
"Bernd Müller" (Do 14 Feb 2019 21:20:35 CET): > > Das Problem mit den Log-Dateien entsteht, wenn der Prozess Speicher für das > Logfile angefordert hat, aber aus irgendeinem Grund dann doch nicht in die > Datei schreibt. In diesem Fall werden einfach Null-Bytes in das Logfile Du meinst, syslog-ng alloziert schon mal genug Platz, um dann anschließend reinzuschreiben? Mit mmap(2), oder einfach direkt im File mit lseek(2)? Das hielte ich für sehr gewagt, weil dann Tools, die am Ende des Logfiles mitlesen möchten, ein Problem hätten. Ist das ein xfs, was Du da verwendest? > Ich möchte aber lieber wissen, was da warum passiert ist. Ich möchte nicht > mitten im Monat die Logs rotieren. Ich kann nicht alle Helfer pauschal auf > grep -a umstellen. Haben diese Files auffällige Größen (irgendwelche Vielfaches von 4k oder so) -- Heiko signature.asc Description: PGP signature
Aw: Logdateien plötzlich binär laut grep nach Upgrade
Hi, kann sein, dass es schon beantwortet wurde, ich habe nicht jede Antwort gelesen. Das Problem mit den Log-Dateien entsteht, wenn der Prozess Speicher für das Logfile angefordert hat, aber aus irgendeinem Grund dann doch nicht in die Datei schreibt. In diesem Fall werden einfach Null-Bytes in das Logfile geschrieben. Das kann man auch mit gedit sehen. Ich werte dann mit cat -e system.log | grep irgendwas aus. Die Binärdaten werden ignoriert und ich kann das ganze Logfile auswerten. Grüße Bernd Gesendet: Donnerstag, 14. Februar 2019 um 10:04 Uhr Von: "Ronny Seffner" An: "'Linux-User-Group Dresden'" Betreff: Logdateien plötzlich binär laut grep nach Upgrade Hallo, ich habe ein System von Debian 8 auf 9 angehoben, das mache ich nicht zum ersten Mal. Diesmal habe ich aber Nachwehen mit grep und logcheck. Grep matcht in den Logfiles bis zum Tag des Upgrades und meldet dann noch "Übereinstimmungen in Binärdatei gefunden". Logcheck arbeitet mit einem ignore-file voller regex, die plötzlich nicht mehr matchen, ich vermute hier einen Zusammenhang. Ich könnte grep -a nehmen. Ich könnte die logs einmal rotieren (verifiziert, funktioniert dann wieder alles). Ich möchte aber lieber wissen, was da warum passiert ist. Ich möchte nicht mitten im Monat die Logs rotieren. Ich kann nicht alle Helfer pauschal auf grep -a umstellen. Wie also kann ich Dateien identifizieren, bei denen grep auf die Binäridee kommen wird (offenbar werden die ja erst "mittig" binär)? Wie kann ich die Dateien konvertieren? Ich suche was in der Art 'finde dateien | prüfe und konvertiere'. Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ro...@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
Re: Logdateien plötzlich binär laut grep nach Upgrade
Hi, Am Thu, 14 Feb 2019 17:13:00 +0100 schrieb "Ronny Seffner" : > Muss man vi noch befähigen "Sonderzeichen" sichtbar zu machen? "-b" vermutlich - jedenfalls für vim. Zeigt vim bei mir aber eh auch so an, wie sich vi verhält, weiß ich nicht (Gnade der späten Geburt...) Ansonsten das bereits erwähnte hexdump, mit -C, ich vermute irgendwo ist da ein NUL byte drin, oder horizontaler Tab oder irgendsowas Verirrtes. Ich hatte neulich ein ähnliches Problem mit Logfiles, kann mich aber gerade absolut nicht daran erinnern, was genau da war, da ich seither leider durch einen Türrahmen gegangen bin und das bei mir immer zu partiellem Gedächtnisverlust führt :/ Mal sehen, obs meinem Kollegen noch einfällt. Oder, eben gebastelt, schau mal die Häufigkeitsverteilung der Bytes an. hexdump -v -e '/1 "%02X\t"' -e '/1 "%c\n"' FILE|sort|uniq -c Der zweite Block nach -e printed das Zeichen noch, das kann aber natürlich die Ausgabe stören je nach Sonderzeichen, ggf. also weglassen, und die seltensten Zeichen voran: hexdump -v -e '/1 "%02X\n"' FILE|sort|uniq -c|sort -hr Grüße Carsten
Re: Logdateien plötzlich binär laut grep nach Upgrade
Hallo, wenn du die Ecke eingrenzen kannst, würde ich sie mir mit "hexdump" oder was immer die Kommandozeile hergibt betrachten, am besten im einem Tool das hex und Ascii nebeneinander zeigt. Beste Grüße Fabian Am 14. Februar 2019 17:13:00 MEZ schrieb Ronny Seffner : >Hallo Fabian, > >auch Dir ein Dank für die Ideen. > >> Ich würd zur manuellen Binärbaumsuche greifen: teile die Datei in >zwei >> Hälften (dd), greppe in beiden nach irgendwas vorhandenem (ein "e"), >mit >> einer matchenden Hälfte wieder von vorn beginnen, bis die Hälfte >klein >> genug ist, dass man es mit bloßem Auge sofort sieht. >> >Ich bin anders rangegangen aber mit der selben Motivation. Ich habe die >Datei im vi offen und sehe zwischen der letzten grepbaren Zeile bis zum >ersten Auftreten des Suchstrings im "binären Bereich" eben nichts >augenscheinliches. Muss man vi noch befähigen "Sonderzeichen" sichtbar >zu machen? > > >Mit freundlichen Grüßen / Kind regards > Ronny Seffner >-- >Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen >www.seffner.de | ro...@seffner.de | +49 35245 72950 >7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
AW: Logdateien plötzlich binär laut grep nach Upgrade
Hallo Fabian, auch Dir ein Dank für die Ideen. > Ich würd zur manuellen Binärbaumsuche greifen: teile die Datei in zwei > Hälften (dd), greppe in beiden nach irgendwas vorhandenem (ein "e"), mit > einer matchenden Hälfte wieder von vorn beginnen, bis die Hälfte klein > genug ist, dass man es mit bloßem Auge sofort sieht. > Ich bin anders rangegangen aber mit der selben Motivation. Ich habe die Datei im vi offen und sehe zwischen der letzten grepbaren Zeile bis zum ersten Auftreten des Suchstrings im "binären Bereich" eben nichts augenscheinliches. Muss man vi noch befähigen "Sonderzeichen" sichtbar zu machen? Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ro...@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
AW: Logdateien plötzlich binär laut grep nach Upgrade
Hallo Christian, danke, dass Du Dich meiner annimmst. > Um welche Logdateien geht es genau? > Zum Beispiel auth.log, syslog oder auch mail.log. Also alles was durch syslog-ng verwaltet wird. > Du koenntest zunaechst mal "file" und "file -i" auf die betreffenden > Dateien ansetzen. > Das hatte ich schon am Start: ns2:~# file /var/log/syslog /var/log/syslog: ASCII text, with very long lines ns2:~# file -i /var/log/syslog /var/log/syslog: text/plain; charset=us-ascii ns2:~# locale LANG=de_DE.UTF-8 LANGUAGE= LC_CTYPE="de_DE.UTF-8" LC_NUMERIC="de_DE.UTF-8" LC_TIME="de_DE.UTF-8" LC_COLLATE="de_DE.UTF-8" LC_MONETARY="de_DE.UTF-8" LC_MESSAGES="de_DE.UTF-8" LC_PAPER="de_DE.UTF-8" LC_NAME="de_DE.UTF-8" LC_ADDRESS="de_DE.UTF-8" LC_TELEPHONE="de_DE.UTF-8" LC_MEASUREMENT="de_DE.UTF-8" LC_IDENTIFICATION="de_DE.UTF-8" LC_ALL= Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ro...@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
Re: Logdateien plötzlich binär laut grep nach Upgrade
Hallo, Ich würd zur manuellen Binärbaumsuche greifen: teile die Datei in zwei Hälften (dd), greppe in beiden nach irgendwas vorhandenem (ein "e"), mit einer matchenden Hälfte wieder von vorn beginnen, bis die Hälfte klein genug ist, dass man es mit bloßem Auge sofort sieht. Beste Grüße Fabian Am 14. Februar 2019 14:53:41 MEZ schrieb Christian Perle : >Hallo Ronny, > >On Thu, Feb 14, 2019 at 10:04:09 +0100, Ronny Seffner wrote: > >> ich habe ein System von Debian 8 auf 9 angehoben, das mache ich nicht >zum >> ersten Mal. Diesmal habe ich aber Nachwehen mit grep und logcheck. >Grep >> matcht in den Logfiles bis zum Tag des Upgrades und meldet dann noch >> "Übereinstimmungen in Binärdatei gefunden". > >Um welche Logdateien geht es genau? > >> Wie also kann ich Dateien identifizieren, bei denen grep auf die >Binäridee >> kommen wird (offenbar werden die ja erst "mittig" binär)? Wie kann >ich die >> Dateien konvertieren? Ich suche was in der Art 'finde dateien | prüfe >und >> konvertiere'. > >Du koenntest zunaechst mal "file" und "file -i" auf die betreffenden >Dateien ansetzen. Leider kann "file" nicht ausgeben, ab welchem Offset >eine Datei "binaer" wird, wobei der Begriff auch nicht klar definiert >ist. Gueltiges UTF-8 Encoding ist auch "binaer", allerdings koennen >file >und grep damit umgehen, und erkennen es daher als Text. > >Die Dateien zu konvertieren setzt voraus, dass man ihr Encoding >erkennen kann. Mit "file -i" geht das zu einem gewissen Grad, aber >spaetestens wenn eine Datei an verschiedenen Offsets unterschiedliche >Encodings enthaelt, kann "file -i" keine eindeutige Information mehr >liefern. Wenn eine Datei *wirklich* an einem bestimmten Offset >Binaermuell enthaelt, laesst sie sich nicht sinnvoll konvertieren. > >Gruss, > Christian >-- >Christian Perlechris AT >linuxinfotag.de >010111 >http://chris.silmor.de/ >101010 >LinuxGuitarKitesBicyclesBeerPizzaRaytracing
Logdateien plötzlich binär laut grep nach Upgrade
Hallo, ich habe ein System von Debian 8 auf 9 angehoben, das mache ich nicht zum ersten Mal. Diesmal habe ich aber Nachwehen mit grep und logcheck. Grep matcht in den Logfiles bis zum Tag des Upgrades und meldet dann noch "Übereinstimmungen in Binärdatei gefunden". Logcheck arbeitet mit einem ignore-file voller regex, die plötzlich nicht mehr matchen, ich vermute hier einen Zusammenhang. Ich könnte grep -a nehmen. Ich könnte die logs einmal rotieren (verifiziert, funktioniert dann wieder alles). Ich möchte aber lieber wissen, was da warum passiert ist. Ich möchte nicht mitten im Monat die Logs rotieren. Ich kann nicht alle Helfer pauschal auf grep -a umstellen. Wie also kann ich Dateien identifizieren, bei denen grep auf die Binäridee kommen wird (offenbar werden die ja erst "mittig" binär)? Wie kann ich die Dateien konvertieren? Ich suche was in der Art 'finde dateien | prüfe und konvertiere'. Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ro...@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8