[Eisfair] E1 DNS-Namensauflösung in mail-Paket schlägt fehl
Jürgen Witt
j-witt at web.de
Do Apr 21 06:15:49 CEST 2016
Hallo Marcus,
Am 20.04.2016 um 19:13 schrieb Marcus Roeckrath:
> Hallo Jürgen,
>
> Ich glaube, ich weiß es jetzt.
>
> /var/log hat die Rechte 0755!
>
> Damit scheitert vermutlich das Anlegen der Datei.
stimmt.
> touch /var/log/dns-ok.log
> chown exim.trusted /var/log/dns-ok.log
genau, so habe ich es jetzt gemacht.
> machst, könnte es dann ohne sudo Klimmzüge gehen.
doch, es braucht das volle Programm.
Ohne entsprechende Änderungen in /etc/sudoers.d/fetchmail-dns-ok
Sieht es so aus
fetchmail: awakened at Thu, 21 Apr 2016 05:40:42 (CEST)
fetchmail: sleeping at Thu, 21 Apr 2016 05:40:49 (CEST) for 300 seconds
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
Nach der Änderung der /etc/sudoers.d/fetchmail-dns-ok in
exim ALL = NOPASSWD: /etc/init.d/mail
exim ALL = NOPASSWD: /bin/date
exim ALL = NOPASSWD: /bin/ping
exim ALL = NOPASSWD: /usr/bin/nslookup
wird die log-Datei /var/log/dns-ok.log beschrieben und der Neustart von
fetchmail (das ging ja nun vorher auch schon) klappt auch.
Ich habe das Abholintervall auch wieder auf 5 Min. gestellt. Wenn jetzt
fetchmail den Server beim Abholversuch nicht mehr findet, wird meine
log-Datei beschrieben (date, ping, nslookup) und fetchmail neu gestartet.
Dein Script sieht jetzt bei mir so aus.
#!/bin/sh
fetch_log="/var/log/fetchmail.log"
# extract log lines of last fetchmail call only
last_fetch_line=$(grep -n 'awakened at' ${fetch_log} | tail -n 1 | cut
-d':' -f1)
# echo $last_fetch_line
last_fetch_entry=$(sed -n "${last_fetch_line},\$p" ${fetch_log})
# echo $last_fetch_entry
# check if error error appeared
dns_error=$(echo "${last_fetch_entry}" | grep 'Name or service not
known' | cut -d ' ' -f2 | sort -u)
# Nur zum Testen wird die Suchzeile auf awakened gesetzt, weil immer da
# dns_error=$(echo "${last_fetch_entry}" | grep 'awakened' | cut -d ' '
-f2 | sort -u)
# echo $dns_error
if [ -n "${dns_error}" ] ; then
sudo /bin/date >> /var/log/dns-ok.log
sudo /bin/ping -c 4 mail.speedpartner.de >> /var/log/dns-ok.log
sudo /usr/bin/nslookup mail.speedpartner.de >> /var/log/dns-ok.log
sudo /etc/init.d/mail restart fetch
fi
Danke für Deine Hilfe
Jürgen
Mehr Informationen über die Mailingliste Eisfair