Rosika
Anmeldungsdatum: 26. Februar 2016
Beiträge: 1355
|
Hallo zusammen, aus einem bestimmten Grunde wollte ich mir meine Syslog-Datei ansehen und verwendete den Befehl cat /var/log/syslog | grep 16:05
,wie schon oft in der Vergangenheit (Uhrzeit natürlich je nach Situation angepaßt). Das hat immer gut funktioniert. Doch diesmal bekam ich
lediglich die Meldung "Übereinstimmungen in Binärdatei (Standardeingabe)", anstatt der vorhandenen Einträge. Nach ein wenig Nachforschen im Netz fand ich auf der Seite https://doc.rldml.de/doku.php?id=linux:grepbinaer den Hinweis:
Gelegentlich kommt bei der Anwendung von grep die Fehlermeldung
Übereinstimmungen in Binärdatei (Standardeingabe) obwohl die fragliche Datei eine Textdatei ist. In dem Fall kann man den Parameter –text übergeben:
cat file.log | grep --text Suchbegriff
Mit dem Befehl cat /var/log/syslog | grep --text 16:05
hat es dann wieder normal geklappt. Alle Einträge wurden angezeigt. Meine Frage ist nun: Da mir das heute zum ersten Mal passiert ist, hat sich da bei "grep" irgendetwas geändert, oder weiß von
Euch jemand etwas mehr über dieses Phänomen? Danke schonmal und LG. Rosika 😕 Moderiert von sebix: Thema in einen passenden Forenbereich verschoben. Bitte beachte die als wichtig markierten Themen („Welche Themen gehören hier her und welche nicht?“) in jedem Forenbereich. Danke.
|
wxpte
Anmeldungsdatum: 20. Januar 2007
Beiträge: 1175
Wohnort: Schäl Sick
|
Leider kann ich dir die Frage nicht beantworten. Einen gepipeten Befehl brauchst du in diesem Fall jedenfalls nicht, schau mal hier: Ein simples
grep "16:05" /var/log/syslog
oder ggf.
grep --text "16:05" /var/log/syslog tut es also auch.
|
Kellerkind_2009
Anmeldungsdatum: 26. November 2009
Beiträge: 19610
Wohnort: Schleswig-Holstein
|
Hmmm stephan@stephan-Desktop:~$ cat /var/log/syslog | grep 16:05
May 11 16:05:03 stephan-Desktop dbus-daemon[1563]: Activating service name='org.freedesktop.Notifications'
May 11 16:05:03 stephan-Desktop dbus-daemon[1563]: Successfully activated service 'org.freedesktop.Notifications' Ausgabe von file /var/log/syslog bei dir?
|
Rosika
(Themenstarter)
Anmeldungsdatum: 26. Februar 2016
Beiträge: 1355
|
Hallo und danke für Eure Antworten. @wxpte: Aha, da habe ich anscheinend das "sinnlose cat" verwendet. Danke für die Aufklärung. Tatsächlich habe ich den von Dir geposteten Link schon einmal gelesen, ihn aber schon lange vergessen..... 😢
In Zukunft werde ich grep "XX:XX" /var/log/syslog verwenden. @Kellerkind_2009: Danke. Hier die Info: file /var/log/syslog
/var/log/syslog: ASCII text LG.
Rosika
|
Kellerkind_2009
Anmeldungsdatum: 26. November 2009
Beiträge: 19610
Wohnort: Schleswig-Holstein
|
Hier bei mir sieht es so aus – warum auch immer 😕 stephan@stephan-Desktop:~$ file /var/log/syslog
/var/log/syslog: UTF-8 Unicode text Werde nachher nochmal bei meinem 19.04 Checken. Gruß Stephan Nachtrag stephan@stephan-HP-Pavilion-17-Notebook-PC:~$ file /var/log/syslog
/var/log/syslog: UTF-8 Unicode text, with very long lines Ebenfalls UTF-8 und gefilterte Abfrage möglich.
|
Rosika
(Themenstarter)
Anmeldungsdatum: 26. Februar 2016
Beiträge: 1355
|
@Kellerkind_2009: Danke für Deine Mühe. Ich habe gerade in meiner VM nachgesehen (BodhiLinux 16.04, 32 bit) Da bekomme ich ebenfalls folgendes heraus: rosika@rosika-virtual-machine ~> file /var/log/syslog
/var/log/syslog: UTF-8 Unicode text
Wirklich kurios........ LG und einen schönen Sonntag noch. Rosika ☺
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12822
|
Rosika schrieb:
Meine Frage ist nun: Da mir das heute zum ersten Mal passiert ist, hat sich da bei "grep" irgendetwas geändert, oder weiß von
Euch jemand etwas mehr über dieses Phänomen?
Es spielen hier mindestens folgende Komponenten eine Rolle:
der Inhalt der durchsuchten Datei (genauer: das Format, in Deinem Fall anscheinend "UTF-8") das Programm grep die aktuelle Locale (kannst Du Dir mit locale anzeigen lassen)
Bei grep hat sich höchstwahrscheinlich nix geändert, was die anderen beiden Optionen übrig lässt. Entweder hast Du absichtlich oder unabsichtlich die Locale in der Shell geändert, von der aus Du grep aufrufst, oder aus irgendwelchen Gründen hat sich etwas am Format der Logdatei geändert (z.B: ein Programm hat jetzt eine Fehlermeldung mit Umlauten hineingeschrieben).
|
Rosika
(Themenstarter)
Anmeldungsdatum: 26. Februar 2016
Beiträge: 1355
|
Danke rklm für Deine Ausführungen.
Entweder hast Du absichtlich oder unabsichtlich die Locale in der Shell geändert, von der aus Du grep aufrufst, oder aus irgendwelchen Gründen hat sich etwas am Format der Logdatei geändert (z.B: ein Programm hat jetzt eine Fehlermeldung mit Umlauten hineingeschrieben).
O.K., die Locale habe ich nicht geändert. Bleibt noch der andere Punkt (Format der Logdatei). Auf jeden Fall habe ich jetzt ein paarmal grep "XX:XX" /var/log/syslog ausgeführt und habe mit dieser Syntax damit bislang keine Probleme bekommen. Danke nochmals für die Info. LG.
Rosika
|
Kellerkind_2009
Anmeldungsdatum: 26. November 2009
Beiträge: 19610
Wohnort: Schleswig-Holstein
|
Wie sieht den die Ausgabe aus? locale
|
Rosika
(Themenstarter)
Anmeldungsdatum: 26. Februar 2016
Beiträge: 1355
|
Hallo Stephan, So sieht´s aus: rosika@rosika-Lenovo-H520e ~> locale
LANG=de_DE.UTF-8
LANGUAGE=de_DE
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=
|
Kellerkind_2009
Anmeldungsdatum: 26. November 2009
Beiträge: 19610
Wohnort: Schleswig-Holstein
|
Hmm,das sieht bei mir genauso aus 😊 stephan@stephan-Desktop:~$ locale
LANG=de_DE.UTF-8
LANGUAGE=de_DE
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=
stephan@stephan-Desktop:~$ Vielleicht weiß rklm mehr.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12822
|
Kellerkind_2009 schrieb:
Vielleicht weiß rklm mehr.
Leider im Moment nicht. Ich habe nochmal gelesen, sehe ich das richtig, dass file sagt, die Datei ist ASCII? Dann ist es umso verwunderlicher, dass Du den ursprünglichen Fehler bekommen hast, denn das ist dann wirklich 7 bit ASCII und sollte fast unter jeder Locale als Text gelesen werden. Es sei denn, syslog ist zwischendurch rotiert worden. Ich habe aus Spaß mal geschaut und bei mir ist es folgendes: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | $ file /var/log/syslog{,.1}
/var/log/syslog: UTF-8 Unicode text, with very long lines
/var/log/syslog.1: UTF-8 Unicode text, with very long lines
$ for f in /var/log/syslog.*.gz; do echo "$f"; gzip -dc "$f" | file -; done
/var/log/syslog.2.gz
/dev/stdin: UTF-8 Unicode text, with very long lines
/var/log/syslog.3.gz
/dev/stdin: UTF-8 Unicode text, with very long lines
/var/log/syslog.4.gz
/dev/stdin: UTF-8 Unicode text, with very long lines
/var/log/syslog.5.gz
/dev/stdin: UTF-8 Unicode text, with very long lines
/var/log/syslog.6.gz
/dev/stdin: UTF-8 Unicode text, with very long lines
/var/log/syslog.7.gz
/dev/stdin: UTF-8 Unicode text, with very long lines
|
Die einzige andere Erklärung, die mir noch einfällt, wäre, dass Du versucht hast zu greppen, während gerade in die Datei geschrieben wurde und da vorübergehend "merkwürdiger" Inhalt sichtbar gewesen ist (z.B. weil ein UTF-8 Multibyte-Zeichen nicht komplett geschrieben war und damit der Inhalt kein korrektes UTF-8 war).
|
Dakuan
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Also ich habe diese Meldung auch schon öfters gesehen wenn ich rekursiv gesucht habe. Allerdings habe ich mir nicht viel dabei gedacht, da im gleichen Verzeichnisbaum auch Binärdateien liegen. Aber der Beitrag von rklm bringt mich auf eine Idee. Könnte es sein, das grep unvollständige Zeichen aus der Pipe liest, z.B. weil cat noch gar nicht fertig war? Ich komme darauf wegen "(Standardeingabe)". Das bedeutet ja, grep sieht gar keine vollständige Datei.
|
Rosika
(Themenstarter)
Anmeldungsdatum: 26. Februar 2016
Beiträge: 1355
|
Danke erneut für Eure Hilfe. Es tut mir schon Leid, daß Ihr Euch so viel Mühe macht..... 😢 Nun habe ich erneut den file-Befehl ausgeführt. Ich denke, ich spinne. Nun kommt folgendes dabei heraus: rosika@rosika-Lenovo-H520e ~> file /var/log/syslog
/var/log/syslog: UTF-8 Unicode text
So, wie bei Euch auch. Ich habe aber den Computer in der Zwischenzeit weder ausgeschaltet noch einen Reboot durchgeführt.
Erklärlich ist das für mich nicht...... 🙄 Auch taucht das beschriebene Phänomen nicht mehr auf, unabhängig davon, welche Syntax ich benutze. Bis auf gestern hatte ich auch mit meiner alten
Syntax nie eine Fehlermeldung bekommen. Ich denke, ich beobachte das auf jeden Fall weiter. Nochmals herzlichen Dank Euch allen. LG.
Rosika
|
Rosika
(Themenstarter)
Anmeldungsdatum: 26. Februar 2016
Beiträge: 1355
|
@Dakuan:
Also ich habe diese Meldung auch schon öfters gesehen
Danke, das ist eine kleine Beruhigung für mich.
Könnte es sein, das grep unvollständige Zeichen aus der Pipe liest, z.B. weil cat noch gar nicht fertig war? Ich komme darauf wegen "(Standardeingabe)". Das bedeutet ja, grep sieht gar keine vollständige Datei.
Möglicherweise. Da hast Du sicherlich mehr Einblick als ich. Wie bereits gesagt, kann ich dieses Phänomen jetzt gar nicht mehr reproduzieren. Und weitere Angaben/Infos als die bereits gemachten kann ich im Moment nicht
liefern. Sorry. Aber herzlichen Dank für Deine Antwort. LG.
Rosika ☺
|