Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

fetchmail - postconnect Befehl scheitert

Alles rund um die Server (Web-, Mail-, Datenbank-, Datenaustausch-, etc.) die man unter Linux betreiben kann

Moderator: Moderatoren

Antworten
radiergummi
Newbie
Newbie
Beiträge: 35
Registriert: 14. Feb 2009, 12:34

fetchmail - postconnect Befehl scheitert

Beitrag von radiergummi » 12. Aug 2018, 17:16

OpenSuse 42.3

Hallo Forum,
mich hat schon immer gestört, dass fetchmail keine Zeitstempel ins Log schreibt.
In der Datei /etc/fetchmailrc habe ich daher bei jedem der 7 abzufragenden Mail-Account folgendes angefügt:

Code: Alles auswählen

preconnect "date >> /var/log/fetchmail"
Das funktioniert prima, hat aber den Nachteil, dass alle 2 Minuten 7 Zeitstempel ins Log geschrieben werden, auch wenn gar keine Nachrichten abzuholen waren.
Daher habe ich die postconnect-Option ausprobiert: wenn die letzte Zeile im Log-File ein Zeitstempel ist (d. h. "CEST" gefunden wird), dann lösche sie.

Code: Alles auswählen

postconnect "sed -i '${/CEST /d;}' /var/log/fetchmail"
Auf der Kommandozeile funktioniert das. Wenn fetchmail das machen soll, erhalte ich folgende Fehlermeldung

Code: Alles auswählen

sed: Kann temporäre Datei /var/log/sedgkPetA nicht öffnen: Keine Berechtigung
fetchmail: Nach-Verbindungs-Befehl scheiterte mit Status 4
Die Log-Datei gehört fetchmail und ist in der Gruppe root.

Kann mir jemand weiterhelfen?

Danke für Tipps!

Gruß,
Radiergummi

Werbung:
spoensche
Moderator
Moderator
Beiträge: 7375
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

Re: fetchmail - postconnect Befehl scheitert

Beitrag von spoensche » 13. Aug 2018, 17:10

Mit welchem User führst du denn fetchmail aus?

Fetchmail schreibt sehr wohl ein Logfile, wenn man in der Konfig den Syslog aktiviert.

Code: Alles auswählen

set syslog

josef-wien
Ultimate Guru
Ultimate Guru
Beiträge: 5080
Registriert: 23. Sep 2008, 17:09

Re: fetchmail - postconnect Befehl scheitert

Beitrag von josef-wien » 13. Aug 2018, 18:10

radiergummi hat geschrieben:
12. Aug 2018, 17:16
Auf der Kommandozeile funktioniert das.
... aber nur als root, denn außer ihm darf üblicherweise niemand in /var/log eine Datei anlegen und löschen, denn dafür sind die Berechtigungsdefinitionen des Verzeichnisses zuständig. Ob und wie Du sed abgewöhnen kannst, im Verzeichnis der zu bearbeitenden Datei seine temporäre Datei anzulegen, kann ich Dir aber nicht sagen.

radiergummi
Newbie
Newbie
Beiträge: 35
Registriert: 14. Feb 2009, 12:34

Re: fetchmail - postconnect Befehl scheitert

Beitrag von radiergummi » 13. Aug 2018, 19:32

Danke für Eure Antworten!
spoensche hat geschrieben:
13. Aug 2018, 17:10
Mit welchem User führst du denn fetchmail aus?
fetchmail läuft als daemon

Code: Alles auswählen

fileserver:/tmp # ps -aef | grep fetchmail
root     19564 16142  0 19:07 pts/4    00:00:00 grep --color=auto fetchmail
fetchma+ 21719     1  0 03:19 ?        00:01:02 /usr/bin/fetchmail -d 120 -a -L /var/log/fetchmail -f /etc/fetchmailrc
spoensche hat geschrieben:
13. Aug 2018, 17:10
Fetchmail schreibt sehr wohl ein Logfile, wenn man in der Konfig den Syslog aktiviert.
Ja, ich kann das Logging in der /etc/sysconfig/fetchmail mit

Code: Alles auswählen

FETCHMAIL_DEFAULT_LOGFILE="/var/log/fetchmail" 
oder
FETCHMAIL_DEFAULT_LOGFILE="syslog" 
einschalten (bei mir die obere Variante). Mit

Code: Alles auswählen

FETCHMAIL_EXPERT_OPTIONS="-v" ... "vvv"
wird die Gesprächigkeit justiert. Aber selbst nur ein "v" erzeugt unglaublich viel (zuviel) Daten, die ich gar nicht will.
josef-wien hat geschrieben:
13. Aug 2018, 18:10
Ob und wie Du sed abgewöhnen kannst, im Verzeichnis der zu bearbeitenden Datei seine temporäre Datei anzulegen, kann ich Dir aber nicht sagen.
Genau da setze ich jetzt an. Ich kam leider erst heute auf die Idee, nach einem sed-Problem zu suchen. Was ich jetzt vorhabe gefällt mir zwar nicht, weil ich von der Standardkonfiguration abweiche, aber wenn ich dadurch bekomme, was ich möchte, so what.

Ich möchte folgendes probieren:

Code: Alles auswählen

FETCHMAIL_DEFAULT_LOGFILE="/var/log/fetchmail/fetchmail.log
Für das Verzeichnis /var/log/fetchmail vergebe ich dann entsprechende Schreibrechte.

Das sollte doch gehen, oder?

Parallel schau ich mal, ob man nicht doch dem sed ein beliebiges temp-Verzeichnis unterjubeln kann. Das wäre dann m. E. die bessere Lösung.

Gruß,
Radiergummi

spoensche
Moderator
Moderator
Beiträge: 7375
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

Re: fetchmail - postconnect Befehl scheitert

Beitrag von spoensche » 15. Aug 2018, 17:39

radiergummi hat geschrieben:
13. Aug 2018, 19:32
Danke für Eure Antworten!
spoensche hat geschrieben:
13. Aug 2018, 17:10
Mit welchem User führst du denn fetchmail aus?
fetchmail läuft als daemon

Code: Alles auswählen

fileserver:/tmp # ps -aef | grep fetchmail
root     19564 16142  0 19:07 pts/4    00:00:00 grep --color=auto fetchmail
fetchma+ 21719     1  0 03:19 ?        00:01:02 /usr/bin/fetchmail -d 120 -a -L /var/log/fetchmail -f /etc/fetchmailrc
Wie man sieht, läuft der fetchmail, vernünftigerweise, mit einem eigenen Benutzer. Daher kann unter /var/log/ das Logfile nicht geschrieben werden.

radiergummi hat geschrieben: Ich möchte folgendes probieren:

Code: Alles auswählen

FETCHMAIL_DEFAULT_LOGFILE="/var/log/fetchmail/fetchmail.log
Für das Verzeichnis /var/log/fetchmail vergebe ich dann entsprechende Schreibrechte.

Das sollte doch gehen, oder?
Nein. Der User fetchmail hat unter /var/log keine Rechte um Dateien anzulegen und zu schreiben. Setze die Variable auf "syslog".
radiergummi hat geschrieben: Parallel schau ich mal, ob man nicht doch dem sed ein beliebiges temp-Verzeichnis unterjubeln kann. Das wäre dann m. E. die bessere Lösung.
Wozu willst du alle Logmeldungen, in denen ein CEST drin vorkommt löschen? Wenn es im Logfile stünde, würdest du alle Zeilen löschen und dich selbst jeglicher Möglichkeit zur Fehleranalyse berauben und das ist alles andere als sinnvoll, um nicht zu sagen totaler Unsinn.

josef-wien
Ultimate Guru
Ultimate Guru
Beiträge: 5080
Registriert: 23. Sep 2008, 17:09

Re: fetchmail - postconnect Befehl scheitert

Beitrag von josef-wien » 15. Aug 2018, 18:03

radiergummi hat geschrieben:
13. Aug 2018, 19:32
Für das Verzeichnis /var/log/fetchmail vergebe ich dann entsprechende Schreibrechte.

Das sollte doch gehen, oder?
Selbstverständlich funktioniert das.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast