Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Suche ein tailing Applet

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.05.2004
    Beiträge
    13

    Suche ein tailing Applet

    Hi,

    ich bin auf der Suche nach einem Applet welches mir im Browser ein logfile tailt (tail -f).
    Gibts da was?

    Grüße
    big

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Logfiles tailen braucht meist root-Rechte. Das dürfte noch so schwierig werden.

    Ausserdem - wozu soll das genau gut sein? Da kannst du ja genau so gut selber tail eingeben...

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Naja...

    Du musst ja irgendwie an die Daten am Server kommen, das Applet läuft ja auf deinem client.

    d.h. müsstest du deine logs über http freigeben (nein!) und nochdazu immer alles runterladen, da man mit http nicht sagen kann, man möchte bitte nur die letzten 100 bytes ...

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.02.2002
    Beiträge
    41
    ich würd versuchen das mit nem php skript zu realisieren.
    mit nem pagerefresh von 1 od 2 sekunden. und dann einfach den letzten stand an das skript übergeben oder so.
    dann brauch man die files nicht öffentlich zugänglich zu machen

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.04.2003
    Beiträge
    43
    moin moin

    mit nem applet kann ich nicht dienen. aber mit nem kleinen webserver, der das von dir verlangte leistet .
    der user der den webserver startet, sollte in der /etc/sudoers stehen, da ich zum ausgeben des logfiles sudo benutze.

    da ich nicht weiß, wie ich die ausgabe von tail *umbiegen* kann, lese ich das logfile mittels cat in ne temp. datei und füge dann nur die letzten 10 zeilen in den html output ein. bei großen logfiles ist das natürlich murks .


    aufruf: scriptname /pfad/zum/logfile

    Code:
    #! /usr/bin/env python
    
    import BaseHTTPServer
    import os
    import sys
    
    
    PORT = 9000
    TEMPDAT = '/home/rip/log.dat'
    
    def tail_html(logfile):
        
        os.popen('sudo cat '+logfile+' > ' + TEMPDAT)
        f = file('/home/rip/log.dat', 'r')
        tail = f.readlines()
        
        html_parts = [
               '<html><head><title>Logfile %s </title></head>' %
               logfile,
               '<body>',
               '<h1>Logfile %s</h1>' % logfile,
               '<br><br>']
        for each in tail[len(tail)-10:]:
            html_parts.append(each+'<br>')
        html_parts.append('</table></body>')
        return "\n".join(html_parts)
    
    class Webserver(BaseHTTPServer.BaseHTTPRequestHandler):
        
        logfile = ''
    
                 
        def send_content(self, content, content_type="text/plain", status=200):
            self.send_response(status)
            self.send_header("Content-type", content_type)
            self.send_header("Content-length", str(len(content)))
            self.end_headers()
            self.wfile.write(content)
    
        def do_GET(self):
            
            try:
                output = tail_html(self.logfile)
            except :
                self.send_content('Fehler', status=400)
            else:
                self.send_content(output, content_type="text/html")
    
    def main(file):
        server = BaseHTTPServer.HTTPServer(('', PORT), Webserver)
        Webserver.logfile = file
        server.serve_forever()
    
    if __name__ == '__main__':
        try:
            if len(sys.argv) != 2:
                print 'usage: \n\n'+ str(sys.argv[0].split('/').pop()) + ' logfile'
            else:
                main(sys.argv[1])     
            
        except KeyboardInterrupt:
            print "\nBeenden ..."

    edit: hm, wenn ich mir die frage nochmal so durchlese und mir das wort *applet* so durch den kopf gehen lasse, bin ich wohl wieder mal haarscharf an der aufgabenstellung vorbei geschliddert . naja egal


    Gruß HL
    Geändert von HangLoose (27-11-2004 um 15:47 Uhr)

  6. #6
    Registrierter Benutzer
    Registriert seit
    07.02.2002
    Beiträge
    41
    Zitat Zitat von HangLoose
    [...]

    edit: hm, wenn ich mir die frage nochmal so durchlese und mir das wort *applet* so durch den kopf gehen lasse, bin ich wohl wieder mal haarscharf an der aufgabenstellung vorbei geschliddert . naja egal


    Gruß HL
    Aber das ganze mit nem applet zu lösen ist auch kacke, da das applet beim user läuft.

  7. #7
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    Zitat Zitat von HangLoose
    .....da ich nicht weiß, wie ich die ausgabe von tail *umbiegen* kann, lese ich das logfile..........
    Moin moin

    Wieso weist du das nicht? Du machst es doch schon mit
    Code:
    os.popen('sudo cat '+logfile+' > ' + TEMPDAT)
    . Ändere das Ganze ab auf
    Code:
    os.popen('sudo tail -f '+logfile+')
    und schon hats du (fast) dein Ergebnis. Das Problem: tail -f kehrt nicht zu deiner Pythonausgabe zurück, weil es ja endlos läuft. Also müsste das ganze als Hintergrundprozess gestartet werden.

    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  8. #8
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    Noch ein Ansatz: Was spricht denn gegen logger? Messages mit tail -f aufnehmen und an logger weitergeben. Und logger kann das irgendwohin schieben, auf eine Datei, oder eben auch auf ein Socket.

    Code:
    logger [-isd ] [-f file ] [-p pri ] [-t tag ] [-u socket ] [message ... ]
    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  9. #9
    Registrierter Benutzer
    Registriert seit
    26.05.2004
    Beiträge
    13
    Hallo,

    ich danke euch für eure Ansätze!
    Mal schaun was ich verwerten kann...

    Grüße
    big

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •