Hallo.
Ich hab hier einige Logdateien auf zwei machienen die ich etwas vereinen möchte.
Also vielen kleine Dateien auf zwei Machinen zusammenführen. wenn Inhalte der einen im anderen Dateien fehlen.
Gibt es da Möglichkeiten sowas leicht zu vergleichen und zu adden?
Oder muss ich mir damit erstmal ein Script bauen, dass alle Dateien Zeile für Zeile durchgehen und immer wieder in der gleichnahmigen Datei auf den anderen Rechner suche und bei bedarf adde.
Logs durcheinander vergleichen wieder vereinnen
-
- Beiträge: 3799
- Registriert: 26.02.2009 14:35:56
Re: Logs durcheinander vergleichen wieder vereinnen
Für sowas bietet sich eher eine Datenbank an, wo man die Dateien reinläd. Anschließend ein Insert in eine Sammeltabelle, wo dann alle drin sind und mit distinct die doppelten entsorgen. Kennst du dich im SQL aus ? da würde sich dann Postgresql anbieten um sowas aufzubereiten.
Tabelle1 - Logs der 1. Maschine
Tabelle2 - Logs der 2. Maschine
Tabelle3 - alle
View1 ueber tabelle1 und tabelle2 ala select * from tabelle1 union select * from tabelle2...
Tabelle3 fuellen mit insert into tabelle3 select distinct * from view1
truncate tabelle1
truncate tabelle2
und du hast alles aus beiden Maschinen und nix doppelt. Die Truncate, damit am nächsten Tag nicht wieder das alte Zeug
in der Sammeltabelle landet. Geht dann per psql auch per Script und sollte insgesamt performanter sein wie ein Script - insbesonere
wenns von der Datenmenge mehr ist.
Tabelle1 - Logs der 1. Maschine
Tabelle2 - Logs der 2. Maschine
Tabelle3 - alle
View1 ueber tabelle1 und tabelle2 ala select * from tabelle1 union select * from tabelle2...
Tabelle3 fuellen mit insert into tabelle3 select distinct * from view1
truncate tabelle1
truncate tabelle2
und du hast alles aus beiden Maschinen und nix doppelt. Die Truncate, damit am nächsten Tag nicht wieder das alte Zeug
in der Sammeltabelle landet. Geht dann per psql auch per Script und sollte insgesamt performanter sein wie ein Script - insbesonere
wenns von der Datenmenge mehr ist.
Re: Logs durcheinander vergleichen wieder vereinnen
Datenbank ist etwas overkill - da reicht ja ggf schon eine Übertragung via scp und cat am "Sammelserver". Das sind dann ein paar einzeiler in den crontabs und ggf logrotate wenn mans damit verbinden will...
Re: Logs durcheinander vergleichen wieder vereinnen
Evtl ist es schon sinnvoll einen logserver auf zu setzen?
Debian-Nutzer
ZABBIX Certified Specialist
ZABBIX Certified Specialist
Re: Logs durcheinander vergleichen wieder vereinnen
Für 2 Maschinen? Da wär mir der Aufwand wirklich zu groß... Zusammengeführte Logs lassen sich wunderbar mit einem kleinen awk-script bauen das Zeilenweise aus beiden Logs einliest, die Zeiten vergleicht und den jeweils älteren Eintrag ausgibt und die nächste Zeile nachlädt. Kann man auch 2-Spaltig ausgeben lassen, dann hat mein beide Rechner synchron nebeneinander (unsynchron nebeneinander ginge ja schon mit screen, 2 fenster und 2x less )Colttt hat geschrieben:Evtl ist es schon sinnvoll einen logserver auf zu setzen?
Wenn ich mir aber den ersten Post nochmal durchlese sollen hier Logeinträge in die Logdatei der anderen Maschine geschrieben werden!? Ich kann mir keinen Fall vorstellen wo sowas sinnvoll oder gewollt sein könnte - eine Logdatei soll schließlich nur das wiedergeben was wirklich auf diesem Rechner passiert ist!?