Veröffentlicht 9. November 200420 j Hallo zusammen, ich möchte eine Syslog-Ausgabe an ein Script weiterleiten (Shell-Script, Perl, PHP oder ähnliches). In den Manpages habe ich keine Info dazu gefunden, und auch mein Google scheint nicht so zu funktionieren wie sonst. Ich vermute mal, dass ich das über diese Named Pipes machen muss. Aber wie bekomme ich z.B. die Daten an ein Perl-Script übergeben werden. Bin für jede Hilfe dankbar
9. November 200420 j Viele syslogds koennen koennen die Logs per Pipe an ein Programm weiterschieben. Schau einfach mal in SYSLOG.CONF(5) vorbei, ob deiner das unterstuetzt. (Wenn nicht ist es normalerweise auch kein Problem, sich einen anderen zu installieren)
9. November 200420 j Jepps... syslog kann (wie schon in meiner Frage erwähnt) an eine Named Pipe die Ausgabe schicken. Aber wie kann ich die dann mit einem Perl-Script z.B. annehmen und bearbeiten?
9. November 200420 j mit stdin geht wohl bei jeder scriptsprache anders. hier mal irgendein beispiel bei ruby: #!/usr/bin/ruby $stdin.each do |x| puts system "clear" puts "schnuffelpuffel "+x+" hasenhirn." puts end das gibts sicherlich bei pearl und so auch
9. November 200420 j Aufpassen. Syslog kann nicht mit normalen Pipes arbeiten, sondern nur mit "Named Pipes" (Fragt Google, was das genau ist *g*). Dazu würde ich gerne ein Beispiel haben, wie ich Daten per named pipe an ein Script übergeben kann (sofern das möglich ist).
17. November 200420 j Ist zwar im Grunde keine elegante Lösung, aber du könntest innerhalb kurzer Zeit immer wieder tail -n1 /var/log/messages in einer Endlosschleife machen...
18. November 200420 j @ssambdar Wenn du das mit Perl realisieren willst, mach ein read-only filehandle auf die entsprechende Logdatei. Danach while(<FILEHANDLE>) { verarbeite Zeile für Zeile; } Ist speicherschonender als while true do Schleifen in der Shell Grüße taschentoast
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.