Hallo,
ich habe mir ein kleines Skript gebastelt, mit dem ich mir die letzten 15 Zeilen des aktuellen Backup-Log-Files per E-Mail zusenden lasse. Es handelt sich um die Datei operations_log.utx eines Retrospect Backup-Systems auf einem Mac-Server. Diese Datei scheint eine Binärdatei zu sein und ich weiß nicht genau, wie ich diese weiter verarbeiten kann.
* Wenn ich die Datei im Terminal mit "more" ausgebe, kommt der Hinweis, dass es sich um eine Binärdatei handelt und more gibt mir nur Kraut und Rüben aus.
* Wenn es die letzten Zeilen mit "tail" ausgebe, ist die Ausgabe hingegen lesbar.
Ich würde nun aber gerne nicht nur die tail-Ausgabe haben, sondern die Ausgabe auch noch durch grep hindurchführen. Dieses erkennt aber keine Begriffe, die ich bei der Ausgabe mit tail sehe. Auch nicht, wenn ich die Option --binary-files=text angebe.
Hat vielleicht jemand eine Idee, wie ich die Binärdatei in eine grep-bare Datei umwandle? Ich weiß, das ist keine GNU/Linux-Frage; aber es geht ja um die gleichen Tools - und hier im Forum versammeln sich halt die schlauesten Leute.
Viele Grüße!
Karl
grep und tail auf Binärdatei anwenden
Re: grep und tail auf Binärdatei anwenden
Code: Alles auswählen
tail -`wc -l file` file
Ungetestet, müsste aber funktionieren. Übrigens: less fragt genauso wie more nach und liefert mit Steuerzeichen aus.
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: grep und tail auf Binärdatei anwenden
Hallo!
Vielen Dank für Deine Antwort. Das Problem war aber nicht, die Datei per tail anzuzeigen, sondern grep in einer lesbaren Form zu übergeben, da grep direkt damit offenbar nicht klar kommt.
Ich habe es jetzt folgendermaßen lösen können:
Ohne "echo" hatte es auch nicht funktioniert.
Vielen Dank für Deine Antwort. Das Problem war aber nicht, die Datei per tail anzuzeigen, sondern grep in einer lesbaren Form zu übergeben, da grep direkt damit offenbar nicht klar kommt.
Ich habe es jetzt folgendermaßen lösen können:
Code: Alles auswählen
# echo "$(tail operations_log.utx)" | grep Begriff
Re: grep und tail auf Binärdatei anwenden
Wenn das ein Befehl ist, denn du händisch eingibst oder kopierst, dann würde ich den echo-Teil schon in deinem Skript verwenden, bevor du die E-Mail sendest. Das sollte doch Tipparbeit sparen.ignoramus hat geschrieben:Code: Alles auswählen
# echo "$(tail operations_log.utx)" | grep Begriff
Debians Paketbeschreibungen übersetzen? Hilf mit!
Re: grep und tail auf Binärdatei anwenden
Ich habe das in einer Skriptdatei stehen. Vollständig ungefähr so:
Dieses Skript wird per cronjob täglich ausgeführt.
Code: Alles auswählen
echo "$(tail operations_log.utx)" | grep Begriff | mail -s "Betreff" user@domain.de