psycho82
-
Gesamte Inhalte
36 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von psycho82
-
-
Ich habe die Ursache des Fehlers/Problems gefunden!
Unsere Mailqueue scheint so groß zu sein, dass der Puffer der Bash sich die korrekte IDs nicht merken kann und somit der Inhalt des leeren Puffers in die Datei schreibt und sie somit nach Durchlaufen des Befehls leer bleibt. Ich habe spaßeshalber nur einige wenige Mails in eine neue Queue kopiert und dann den Befehl abgesetzt und siehe da, es funktionert. Nur leider löst das mein Problem nicht. Ich brauche die IDs in einer Datei :-) Falls jemand Vorschläge hat einfach posten.
Danke
-
Was passiert, wenn du anstelle einer direkten Umleitung von stdout, erst in eine Pipe schreibst und dann nach einem weiterem Befehl in eine Datei?
Bspw.:
exipick --spool /tmp/ -i -f .*mstbw\.de | grep "" > file
Guten Morgen,
Also wenn ich den Befehl so absetze, erhält die Datei das korrekte Änderungsdatum, aber mehr auch nicht. Es wird kein Inhalt in die Datei geschrieben. Ich verstehe das einfach nicht. Setze ich den Befehl ohne die Ausgabe in eine Datei ab, funktionert der Befehl, allerdings erhalte ich dann "nur" eine Ausgabe auf dem Bildschirm und so ist das ja nicht gewünscht.
-
Hi,
also ich hab mir jetzt mal Exim installiert, und bei mir funktioniert das genau so. Das hilft dir jetzt natürllich erstmal nicht weiter.
Jetzt stellt sich mir die Frage, was generell bei Umleitungen passiert. Hast du Schreibrechte in dem Verzeichnis? Funktioniert sowas z.B.?
ls -lart > test.txt
Bin root und ja ich habe Schreibrechte in dem Verzeichnis. Wenn ich "ls -lart > test.txt" ausführe, wird die Datei erstellt und in der Datei wird der Ordnerinhalt als text gespeichert. Ich habe mal den Befehl: exipick --spool /tmp/ -i '$sender_address = .*mstbw\.de' > file mal ausführen lassen. Die neue Datei wird erstellt und er sucht auch sehr lange in der Mailqueue nach Mails, nur leider schreibt er keine IDs in meine neue Datei.
-
So, hab mal etwas getestet. Die zwei folgenden Befehlen funktionieren ohne die Bildschirmausgabe in einer Datei zu speichern:
exipick --spool /tmp/ -i '$sender_address = .*mstbw\.de'
exipick --spool /tmp/ -i -f .*mstbw\.de
Sobald ich die Bildschirmausgabe in eine Datei ausgeben will passiert nichts. Ich warte ein - zwei minuten aber die Datei wird nicht mit IDs gefüllt. Diese beiden Befehle funktionieren nicht:
exipick --spool /tmp/ -i '$sender_address = .*mstbw\.de' > file
exipick --spool /tmp/ -i -f .*mstbw\.de > file
Jemand ne Idee?
-
Also ich versuche das Problem nochmals allgemein zu beschreiben. Ich möchte exipick mir alle MailsIDs in eine Datei schreiben, welche als Absendereintrag mstbw.de haben. Die Option -f erwartet einen regulären Ausdruck. Um die Bildschirmausgabe von exipick in eine Datei umzuleiten muss ich ja > DATEI verwenden. Allerdings "denkt" die Option -f von exipick, dass > DATEI ebenfalls zum regulären Ausdruck gehört und ignoriert die Ausgabe in eine Datei bzw. such Absender die auf "*.mstbw.de > DATEI" hören. Und solche gibt es ja nicht.
Und meinen regulären Ausdruck kann ich mit den Hochkommas nicht ausklammern.
VERSTANDEN?
-
Hi,
ich kenne exipick nicht. Aber was ist hiermit:
exipick --spool /tmp/ -i -f mstbw.de | grep irgendwas > file
Danke für den Tipp, aber dann erhalte ich folgende Fehlermeldung:
cat: *mstbw.de: No such file or directory
edit: @Carsten ... hast du deinen Code nochmal geändert? Sieht so aus, eben stand da noch was anderes
-
Das habe ich im vorigen Posting bereits getan
Das kann auch nicht funktionieren mit der Pipe direkt hinter -f...
Wenn das dort genannte Dein Muster ist, Du also nach Absenderadressen in der Domain mstbw.de suchst, sollte theoretisch das folgende funktionieren (wie gesagt, ohne hier ein exipick vor mir zu haben):
Genau das ist die Idee, ich such nach den Absenderadressen und möchte deren Mailids in ein File kopieren. Deinen Befehl hier hab ich schon ausprobiert, das geht nicht, das verwundert mich ja so:
exipick --spool /tmp/ -i -f '.*mstbw\.de' > file
-
Hmm, ich glaube, ich hab Dein Problem zuerst mißverstanden: wenn du <regexp> schreibst, meinst Du nicht irgendeinen regulären Ausdruck, sondern einen, der tatsächlich mit den Zeichen '<' und '>' beginnt bzw. endet, korrekt?
Das heißt, Du musst die redirection operators vor der Shell verstecken, aber mit einem einfachen '\' davor kriegst Du irgendwie keinen Treffer mehr auf Deinen regulären Ausdruck?
Habe hier kein exipick, spiele aber ein wenig mit grep an dieser Frage herum und merke mal wieder, daß das Thema Shell + reguläre Ausdrücke + Zeichenmaskierung doch immer wieder, äh, interessant ist...
Edit:
Nee, Quark, geht doch einfach (zumindest mit grep):
Ne, ich meinte eine regexp ohne "<" und ">". Kannst du vielleicht mal den gesamten grep Befehl nennen? Ich habs mal so probiert:
exipick --spool /tmp/ -i -f | grep -E .*mstbw\.de > file
Und das funktioniert nicht. Hmmm...
-
Schon mal versucht, den reg. Ausdruck einfach in einfache Anführungszeichen (') einzuschließen?
Oder die Langform zu nehmen, die in der man page angegeben ist?
Also das mit den Hochkommas hab ich schon versucht. Das hilft mir nicht weiter. Und du Langform hilft mir ja auch nicht weiter, da dort ebenfalls nach dem <regexp> die Ausgabe in die Datei folgt.
Verflixtes Problem
-
Hallo,
ich habe folgendes Problem. Ich möchte an einen Befehl der einen regulären Ausdruck erwartet hinter diesen Ausdruck einen weiteren Befehl anfügen. Bzw. den gesamten Befehl in eine Datei ausgeben.
exipick --spool /tmp/ -i -f <regexp> > datei
Das "> datei" ist mein Problem. Wie kann ich den regulären Ausdruck klammern? Oder gibt es hier eine bessere Lösung?
Gruß
Regulärem Ausdruck Befehl anfügen
in Linux
Geschrieben
Wäre es nicht besser einfach den Inhalt der Queue in mehrere Ordner um zu verteilen und dann diese neuen kleineren Queues mit exipick zu durchsuchen? Das ganz dann mit einem script.