Ausgabe endet vorzeitig bei Umlenkung in Datei
Hallo, ich habe gerade folgendes Phänomen: In einem Skript wird eine etwas komplexere ldapsearch-Abfrage zusammengebaut. Lasse ich das Skript so laufen, kommt die Ausgabe auf STDOUT bis zum vorgesehenen Ende. # ./skript.sh ... entryDN: [...] ou=foo sac hsen,c=de subschemaSubentry: cn=Subschema hasSubordinates: FALSE SyncInfo Received Leite ich aber die Ausgabe in eine Datei um, endet die Ausgabe vorzeitig: # ./skrip.sh > log # tail log ... entryDN: [...] ou=foo sac hs Das gleiche gilt für # ./skript.sh | tee -a log hier enden STDOUT und Datei vorzeitig. Das kann ich so oft ich will wiederholen, es ist immer gleich. log ist am Ende 33 MB groß. Ich bin root. Das Dateisystem ist nicht voll. [Ziel ist, das Skript mehrfach gleichzeitig aufzurufen und hinterher die Logs auszuwerten. Das geht aber nicht, weil die Datei unvollständig sind.] Jemand ne Idee, warum die Datei vorzeitig zuende ist? Marc -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 09.08.2011 12:33, schrieb Marc Patermann:
Leite ich aber die Ausgabe in eine Datei um, endet die Ausgabe vorzeitig:
Spontan würde ich auf ein Anzahl-Zeichen-Limit tippen oder ein Grössenlimit tippen. Gruß Ralf Prengel Manager Customer Care Comline AG Hauert 8 D-44227 Dortmund/Germany Fon +49 231 97575 904 Fax +49 231 97575 257 Mobil +49 151 10831 157 EMail Ralf.Prengel@comline.de www.comline.de Vorstand Stephan Schilling, Erwin Leonhardi Aufsichtsrat Dr. Franz Schoser (Vorsitzender) HR Dortmund B 14570 USt.-ID-Nr. DE 124727422 Für die Erstellung unserer Dokumente benutzen wir die Produkte aus dem Microsoft Office 2007 Paket. Sollte sich ein Anhang in der Mail befinden, der mit einer älteren Office Version nicht geöffnet werden kann, installieren Sie bitte das Compatibility Pack für Office 2007. http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466&DisplayLang=de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 09.08.2011 12:33, schrieb Marc Patermann:
Hallo,
ich habe gerade folgendes Phänomen:
In einem Skript wird eine etwas komplexere ldapsearch-Abfrage zusammengebaut. Lasse ich das Skript so laufen, kommt die Ausgabe auf STDOUT bis zum vorgesehenen Ende.
# ./skript.sh ... entryDN: [...] ou=foo sac hsen,c=de subschemaSubentry: cn=Subschema hasSubordinates: FALSE
SyncInfo Received
Leite ich aber die Ausgabe in eine Datei um, endet die Ausgabe vorzeitig:
# ./skrip.sh > log # tail log ... entryDN: [...] ou=foo sac hs
Das gleiche gilt für # ./skript.sh | tee -a log hier enden STDOUT und Datei vorzeitig.
Das kann ich so oft ich will wiederholen, es ist immer gleich. log ist am Ende 33 MB groß. Ich bin root. Das Dateisystem ist nicht voll.
[Ziel ist, das Skript mehrfach gleichzeitig aufzurufen und hinterher die Logs auszuwerten. Das geht aber nicht, weil die Datei unvollständig sind.]
Jemand ne Idee, warum die Datei vorzeitig zuende ist?
Marc Äh, kurze Frage zum "tail" Kommando: Was ist, wenn die Abfrage noch läuft und die Datei also noch geschrieben wird? Ein "tail -f log" schon mal probiert?
-- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Äh, kurze Frage zum "tail" Kommando: Was ist, wenn die Abfrage noch läuft und die Datei also noch geschrieben wird? Ein "tail -f log" schon mal probiert? Normalerweise gucke ich gleich mit "tail -f" rein, ja. Das ist aber nicht das Problem. Ich kann auch nach "cat" pipen, es
Hallo, Sebastian Reinhardt schrieb am 09.08.2011 13:08 Uhr: passiert das gleiche: vorher zu ende. (gerade erst getestet) Es fehlen nur ein paar Zeilen. Die sind ohne Umlenkung ms später zu sehen. Der Server log auch den Ende der Aktion, mit STDOUT nach ca. 10 s, mit Umlenkung - z.B. nach "| grep Sync" schon nach ca. 3 s. Obwohl der grep aber auf die letzte Zeile anschlagen müsste, kommt die nicht. Jetzt denke ich, das Programm ist egal, es liegt an der Umlenkung mit <,
oder |.
Was kann das sein? Marc -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Es fehlen nur ein paar Zeilen. Die sind ohne Umlenkung ms sp=E4ter zu seh= en. Der Server log auch den Ende der Aktion, mit STDOUT nach ca. 10 s, mit=20 Umlenkung - z.B. nach "| grep Sync" schon nach ca. 3 s. Obwohl der grep=20 aber auf die letzte Zeile anschlagen m=FCsste, kommt die nicht.
Jetzt denke ich, das Programm ist egal, es liegt an der Umlenkung mit <,=20
oder |.
Was kann das sein?
Hi,
du hast ein Programm das funktioniert. Es schreibt seinen Müll in Datei und schliesst dann Die Datei ist vollständig Du hast ein Programm mit Fehler. Es schreibt seinen Müll in Datei, in Häppchen von z.B. 1024 Byte, und hört irgendwann auf. Die Datei int unvollständig Du verwendest dasselbe Programm ohne Umlenkung. Dadurch wird automatisch von gepufferter Ausgabe auf zeilenweise Ausgabe umgestellt. Du siehst ein Ergebnis, das mit einer kompletten Zeile aufhört, auch wenn das Programm fehlert... aber es ist möglicherweise nicht die Zeile, die wirklich am Schluss stehen sollte Wolfgang -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Tue, August 9, 2011 12:33, Marc Patermann wrote: Ahoi,
In einem Skript wird eine etwas komplexere ldapsearch-Abfrage zusammengebaut. Lasse ich das Skript so laufen, kommt die Ausgabe auf STDOUT bis zum vorgesehenen Ende.
[...]
Leite ich aber die Ausgabe in eine Datei um, endet die Ausgabe vorzeitig:
ich verstehe nicht, was das Skript macht, aber ich weiß, daß Puffer eine Rolle spielen können. Bei der Umsetzung einer Web-Seite in eine Bilddatei (als eine Art Super-Screenshot) kann es eine Grenze bei 4 MB geben. Das ist eine absolute Größe, die mit dem Datenformat (bmp, jpg) nichts zu tun hat. Die Ausgabe auf den Bildschirm ist fortlaufend und benutzt keinen Puffer. Kann es sein, daß es beim Schreiben in eine Datei einen Puffer gibt? Ich weiß, daß es einen Unterschied gibt zwischen > und >>. Gibt es den Unterschied bei dem Skript auch? Wenn immer nur weitere ZEILEN in die Datei müssen, kann man die nicht auch EINZELN oder BLOCKWEISE *ANHÄNGEN*? Viel Glück! Aribert Deckers ----- the reel world http://ariplex.com/folia/archives/256.htm -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Marc,
Am Tue, 9 Aug 2011 12:33:24 +0200
schrieb Marc Patermann
Hallo,
ich habe gerade folgendes Phänomen:
In einem Skript wird eine etwas komplexere ldapsearch-Abfrage zusammengebaut. Lasse ich das Skript so laufen, kommt die Ausgabe auf STDOUT bis zum vorgesehenen Ende.
# ./skript.sh ... entryDN: [...] ou=foo sac hsen,c=de subschemaSubentry: cn=Subschema hasSubordinates: FALSE
SyncInfo Received
Leite ich aber die Ausgabe in eine Datei um, endet die Ausgabe vorzeitig:
# ./skrip.sh > log # tail log ... entryDN: [...] ou=foo sac hs
Das gleiche gilt für # ./skript.sh | tee -a log hier enden STDOUT und Datei vorzeitig.
Das Problem liegt vermutlich darin, daß syncInfo received eigentlich eine OID ist, die von libldap noch interpretiert wird, durch die Umleietung geht vermutlich die Information verloren. Ich verstehe ja, was du machen möchtest, baue mal die Umleitung ins Script ein, dann sollte es gehen, etwa auf diese Weise: ldapsearch -H $HOST -b $BASE -s sub -E\!sync=rp/$RID $ATTRS >> log.txt -Dieter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (6)
-
Aribert Deckers
-
Dieter Klünter
-
hamann.w@t-online.de
-
Marc Patermann
-
Ralf Prengel
-
Sebastian Reinhardt