Kann eine Textdatei übrelaufen?
neuling
- php
0 Der Martin0 suit0 Der Martin0 suit
0 Mechthild0 Matti Mäkitalo
Hi,
Ich betreibe eine kleine Statistik im Hintergrund die zB die Referer meiner Besucher in einer Textdatei speichert und lasse ausgehende Links über einen Zähler laufen und auflisten etc. Ja ich weiss dafür gibt es auch fertige Scrpits und Dienste etc.
Mich würde jedoch interessieren was passiert, wenn ich diese Textdateien nicht regelmässig leeren würde und immer neue Zeilen hinzu kommen (ausser dass alles unübersichtlich wird).
Gibt es ausser der Grösse meines Webspaces einen Faktor der die Grösse einer Textdatei beschränkt? Gibt es irgendwann vom Server eine Fehlermeldung an meine Besucher oder wird die Datei einfach nicht mehr weiter beeschrieben?
Mir ist bekannt dass die ständige Bearbeitung von grossen Dateien mehr Rechenleistung erfordert und dass MySql besser währe. Will aba nich ;)
Vielen Dank
Hallo,
Gibt es ausser der Grösse meines Webspaces einen Faktor der die Grösse einer Textdatei beschränkt?
ja und nein. In deinem speziellen Fall eher nein.
Es gibt Dateisysteme, die nur eine begrenzte Dateigröße verwalten können, wie z.B. FAT unter Windows mit maximal 4GB. Und ab einer gewissen Größe wirst du auch mit so manchem Editor Mühe haben, die Datei noch anzuzeigen oder zu bearbeiten.
Gibt es irgendwann vom Server eine Fehlermeldung an meine Besucher oder wird die Datei einfach nicht mehr weiter beeschrieben?
Weder, noch. Theoretisch kannst du eine Datei weiter fortschreiben, bis die Platte voll ist. Ob das sinnvoll ist, wäre eine andere Frage.
Ciao,
Martin
ja und nein. In deinem speziellen Fall eher nein.
Es gibt Dateisysteme, die nur eine begrenzte Dateigröße verwalten können, wie z.B. FAT unter Windows mit maximal 4GB.
Unter FAT16 und FAT32 vielleicht - exFAT kann weit mehr :)
Und ab einer gewissen Größe wirst du auch mit so manchem Editor Mühe haben, die Datei noch anzuzeigen oder zu bearbeiten.
Mit Notepad ist das ein Spaß, ja :)
Weder, noch. Theoretisch kannst du eine Datei weiter fortschreiben, bis die Platte voll ist. Ob das sinnvoll ist, wäre eine andere Frage.
Wenn die Platte bis aufs letzte Byte befüllt ist, wird das fehlende Logging wohl dein kleinstes Problem sein.
Hallo,
Es gibt Dateisysteme, die nur eine begrenzte Dateigröße verwalten können, wie z.B. FAT unter Windows mit maximal 4GB.
Unter FAT16 und FAT32 vielleicht - exFAT kann weit mehr :)
stimmt, ich vergaß. Wobei das "ex" in exFAT vermutlich für "experimentell" steht ...
Und ab einer gewissen Größe wirst du auch mit so manchem Editor Mühe haben, die Datei noch anzuzeigen oder zu bearbeiten.
Mit Notepad ist das ein Spaß, ja :)
Die meisten mir bekannten Editorprogramme versuchen, die Datei komplett in den Arbeitsspeicher zu laden. Irgendwann sind dann sogar 4 oder 8GB mal überfordert.
Ciao,
Martin
Es gibt Dateisysteme, die nur eine begrenzte Dateigröße verwalten können, wie z.B. FAT unter Windows mit maximal 4GB.
Unter FAT16 und FAT32 vielleicht - exFAT kann weit mehr :)stimmt, ich vergaß. Wobei das "ex" in exFAT vermutlich für "experimentell" steht ...
Nein, eher für "exklusiv" - funktionieren tut es gut, nur unter Linux hast du keine Chance, weil niemand weiß wei es funktioniert - außer ein die Lizenznehmer und die unterliegen sicher einem NDA.
Hallo,
da ich sehr oft mit sehr großen Textdateien (> 2 GB) zu tun habe , möchte ich hier noch eine Empfehlung abgeben, mit welchem Editor man solche Dateien komfortabel öffen und bearbeiten kann: Emeditor
Leider hatte ich große Schwierigkeiten, das Ding unter Linux (Wine) laufen zu lassen, dass das auch der Grund war, mein Haupt-OS von Linux wieder auf Windows7 umzustellen. Ich habe bisher für Linux auch kein vergeichbares Tool gefunden.
Ich habe bisher für Linux auch kein vergeichbares Tool gefunden.
Bluefish, Vi/Vim, Emacs, SciTE ...
Ich habe bisher für Linux auch kein vergeichbares Tool gefunden.
Bluefish, Vi/Vim, Emacs, SciTE ...
Hä? Du hast also schonmal mit Emacs erfolgreich Dateien geöffnet und bearbeitet, die um die 8 GB groß sind? Mir ist das weder mit komfortabel mit vi, bluefish sowieso nicht oder Emacs geglückt.
Hä? Du hast also schonmal mit Emacs erfolgreich Dateien geöffnet und bearbeitet, die um die 8 GB groß sind?
Schon mal ein ordentlich kompiliertes 64-Bit-Emacs verwandt? Das Limit unter Emacs ist 2^27-1 unter 32-Bit-Systemen und 2^59-1 Byte unter 64-Bit-Systemen.
Hä? Du hast also schonmal mit Emacs erfolgreich Dateien geöffnet und bearbeitet, die um die 8 GB groß sind?
Schon mal ein ordentlich kompiliertes 64-Bit-Emacs verwandt? Das Limit unter Emacs ist 2^27-1 unter 32-Bit-Systemen und 2^59-1 Byte unter 64-Bit-Systemen.
sicher, das wäre noch ein Test wert gewesen, das ist schon klar. Aber dazu häte ich nur dafür auf ein 64-Bit System umsteigen müssen. Und da noch ein paar andere wichtige Dinge für Win7 64 gesprochen haben, war der Schritt vernünfig und ich habe es bisher nicht bereut. Bluefish oder vi als Alternative zum Öffnen großer Dateien anzuführen und meinen Beitrag dann als SPAM zu markieren, entbehrt nicht einer gewissen Komik. Schlimm, diese Blockwarte.
Bluefish oder vi als Alternative zum Öffnen großer Dateien anzuführen und meinen Beitrag dann als SPAM zu markieren, entbehrt nicht einer gewissen Komik. Schlimm, diese Blockwarte.
Im Gegensatz zu Emeditor sind die genannten Editoren aber allesamt kostenlos und unter offenen Lizenzen. Wenn du wenigstens als alternative noch z.B. UltraEdit angeführt hättest, wäre es nicht so "offensichtlich" gewesen.
Bluefish oder vi als Alternative zum Öffnen großer Dateien anzuführen und meinen Beitrag dann als SPAM zu markieren, entbehrt nicht einer gewissen Komik. Schlimm, diese Blockwarte.
Im Gegensatz zu Emeditor sind die genannten Editoren aber allesamt kostenlos und unter offenen Lizenzen. Wenn du wenigstens als alternative noch z.B. UltraEdit angeführt hättest, wäre es nicht so "offensichtlich" gewesen.
"Was" wäre nicht so offensichtlich gewesen? Und woraus schließt du, dass ich UltraEdit wissentlich unterschlagen hätte? Ich kenne UltraEdit nicht, ich weiß nicht, ob UltraEdit große Dateien so öffnet, dass man damit Arbeiten kann. Ich sagte, dass _ich_ noch kein Tool gefunden hätte, ich sagte nicht, dass es definitiv keins geben würde und nur dieses (womöglich noch mein eigenes) Produkt zu empfehlen sei. Und was nützt mir ein kostenloser Editor, wenn er das, wofür ich ihn benötige, nicht leistet, wie zum Beispiel Bluefish?
Unterstellst du den Leute eigentlich immer irgendwelche Dinge? So ein Verhalten halte ich persönlich für brandgefährlich. Es ist ja schön, wenn man sich für die Reinhaltung des Forums von SPAM einsetzt. Aber hier bist du meines Erachtens über das Ziel hinausgeschossen.
Bluefish oder vi als Alternative zum Öffnen großer Dateien anzuführen und meinen Beitrag dann als SPAM zu markieren, entbehrt nicht einer gewissen Komik. Schlimm, diese Blockwarte.
Im Gegensatz zu Emeditor sind die genannten Editoren aber allesamt kostenlos und unter offenen Lizenzen. Wenn du wenigstens als alternative noch z.B. UltraEdit angeführt hättest, wäre es nicht so "offensichtlich" gewesen.
"Was" wäre nicht so offensichtlich gewesen?
Der Augenschein der Werbung.
Aber hier bist du meines Erachtens über das Ziel hinausgeschossen.
Sehe ich nicht so - eine einseitiger Hinweis auf eine kommerzielle Software, der nur indirekt etwas mit dem Thema zu tun hat, ist schon etwas verdächtig. Die noch dazu als "Hinweis" mit einer seltsamen Begründung daherkommt.
Besonders unter dem Gesichtspunkt, dass du unter Linux kein solches Tool finden konntest, obwohl das quasi eine Selbstverständlichkeit ist. Selbst mit grep/find lassen sich "unbegrenzt" große Dateien durchforsten.
Comparison of text editors wäre übrigens hilfreich gewesen.
Besonders unter dem Gesichtspunkt, dass du unter Linux kein solches Tool finden konntest, obwohl das quasi eine Selbstverständlichkeit ist. Selbst mit grep/find lassen sich "unbegrenzt" große Dateien durchforsten.
mit find sicherlich nicht. Und ich sagte, komfortabel öffnen und bearbeiten. Nicht Durchforsten und Ausgeben mit grep. Das ist was völlig anderes. Anyway, hier kommen wir nicht weiter. Das verkommt ja langsam zur Farce.
Hi,
Besonders unter dem Gesichtspunkt, dass du unter Linux kein solches Tool finden konntest, obwohl das quasi eine Selbstverständlichkeit ist. Selbst mit grep/find lassen sich "unbegrenzt" große Dateien durchforsten.
mit find sicherlich nicht. Und ich sagte, komfortabel öffnen und bearbeiten. Nicht Durchforsten und Ausgeben mit grep. Das ist was völlig anderes.
Die Frage ist, wie häufig man manuell in großen Dateien rumwerkeln muss (*).
Ansonsten sucht man in solchen Dateien (grep), man will sie automatisiert bearbeiten (awk, sed, perl) oder sich Teile davon ansehen (hier nenne ich mal tail/head).
Aber manuell eine große Datei bearbeiten ist zumindest nicht mein Ding.
* Auf Anhieb fällt mir nur der Fall ein, wo ich einen MySQL-Dump irgendwo bearbeiten wollte. Die Datei hatte so 200Mb, und das war nicht sehr nett.
Ich nutze vim als Standardeditor meiner Wahl, und da ist nicht die Dateigröße das Problem (vim lädt IMHO nur die Zeilen in den Buffer, welche auch aktuell angezeigt werden), sondern die Zeilenlängen (welche bei einem Dump ja recht lang werden können). Achja, und es muss mal geladen werden (weil man ja zumindest am Anfang den Überblick haben muss, wieviele Zeilen in der Datei sind, muss der Editor sich mindestens einmal komplett durchquälen).
Bis die Tage,
Matti
Hallo,
Die Frage ist, wie häufig man manuell in großen Dateien rumwerkeln muss
da hast du recht, der Normaluser bestimmt nicht häufig. Ich habe beruflich mit großen Datenmengen zu tun, und ich muss relativ häufig (> 10 täglich) große Dateien (>2GB) mal ansehen, mal testweise bearbeiten. Und Skripten lohnt sich meist nicht, da die Struktur der Textdateien stets eine völlig andere ist. Sicherlich gibt es verschiedene Wege, aber von allen getesteten Editoren, und das waren relativ viele, hat dieser Editor meines Erachtens hinsichtlich Performance am besten abgeschnitten. Egal, sei's drum. Ich wollte nur noch mal klarstellen, dass ich kein Werber bin. Und ich werde mich hüten, hier jemals wieder ein kommerzielles Produkt zu empfehlen ;)
...umd nochmal zurück zum bisher nicht beantworteten Thema zu kommen: Heisst dass die Textdatei wird einfach immer grösser aber es gibt keine Fehlermeldung solange der Speicherplatz ausreicht?
MfG
Hi,
...umd nochmal zurück zum bisher nicht beantworteten Thema zu kommen:
welches wurde denn nicht beantwortet?
Heisst dass die Textdatei wird einfach immer grösser aber es gibt keine Fehlermeldung solange der Speicherplatz ausreicht?
Genügt dir die gegebene Antwort nicht, oder zweifelst du sie an?
Ciao,
Martin
Hi,
Oh vielen Dank...nein das klingt alles so als ob da jemand wüsste wovon er spricht. Da wage ich nicht zu zweifeln sondern kann ruhig in den Urlaub fahren ohne meine Statistik abschalten zu müssen...
Danke :)
Hi,
Ich betreibe eine kleine Statistik im Hintergrund die zB die Referer meiner Besucher in einer Textdatei speichert und lasse ausgehende Links über einen Zähler laufen und auflisten etc. Ja ich weiss dafür gibt es auch fertige Scrpits und Dienste etc.
Mich würde jedoch interessieren was passiert, wenn ich diese Textdateien nicht regelmässig leeren würde und immer neue Zeilen hinzu kommen (ausser dass alles unübersichtlich wird).
Gibt es ausser der Grösse meines Webspaces einen Faktor der die Grösse einer Textdatei beschränkt? Gibt es irgendwann vom Server eine Fehlermeldung an meine Besucher oder wird die Datei einfach nicht mehr weiter beeschrieben?
Es gibt da vielfältige Fehlerquellen. Einige sind externer Art (z.B. Festplatte voll bzw. Quota ausgereizt), andere interner (Programmier-"fehler").
Ein Beispiel: wenn du die riesige Datei jedesmal in den Speicher (z.B. Array) lädst, eine Element hinzufügst und dann wieder abspeicherst, wirst du deutlich früher Grenzen aufgezeigt bekommen. Sei es entweder durch PHPs memory_limit oder durch fehlenden Hauptspeicher, was dazu führt, dass dein Programm langsamer ist, als es sein müsste.
Wenn du hingegen nur ein append auf die Datei ausführst (du also ab Dateiende weiterschreibst), dann sollte es deutlich schneller gehen.
Wie du siehst, ist deine Frage in dieser Allgemeinheit nicht beantwortbar.
Aber wie wäre es, dir einfach einen cronjob einzurichten, welcher deine Logdateien aufräumt (logrotate)?
Bis die Tage,
Matti