selbstständiger und ungewollter Versand von Mails

  • Hallo Community,

    mein RPi sendet mir jeden Tag um 6:25 eine Mail an die Mailadresse, die mein Root für meinen Mailserver ist.

    Der Inhalt dieser nervigen Mail ist Folgendes:


    Betreff: Cron <root@raspberrypi> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )


    /etc/cron.daily/logrotate:

    error: skipping "/var/log/apache2/access.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.

    error: skipping "/var/log/apache2/error.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.

    error: skipping "/var/log/apache2/other_vhosts_access.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.

    mysqladmin: connect to server at 'localhost' failed

    error: 'Access denied for user 'root'@'localhost' (using password: NO)'

    error: error running shared postrotate script for '/var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log '

    run-parts: /etc/cron.daily/logrotate exited with return code 1



    Was muss ich tun, damit der Versand aufhört und da keine Errormeldungen mehr drin sind?


    Liebe Grüße und Vielen Dank im Vorraus :danke_ATDE:

    Horst-Leopold



    PS.: Die Zeile "mysqladmin: connect to server at 'localhost' failed" verstehe ich so gar nicht, weil ich mich nicht erinnern kann, das ich mysqladmin habe...


    Vielleicht könnt ihr mir da nebenbei noch helfen das zu entfernen.

    Ich habe schon "sudo apt-get purge mysqladmin" versucht, aber da stand, dass das Paket nicht installiert sei.

    Edited once, last by Horst-Leopold: Aus irgendeinem Grund war da oben im Crontab-Befehl ein Smiley ().

  • Was muss ich tun, damit der Versand aufhört und da keine Errormeldungen mehr drin sind?

    Im einfachsten Fall ein leeres MAILTO in der entsprechenden crontab setzen (MAILTO='').

    Sinnvoller wäre sich die Meldungen genau anzusehen und deren Ursache zu beheben.


    btw. mysqladmin ist in den mysql- bzw mariadb-client Paketen enthalten.

    Menschen die keine Ironie verstehen finde ich super!

  • Im einfachsten Fall ein leeres MAILTO in der entsprechenden crontab setzen (MAILTO='').

    Sinnvoller wäre sich die Meldungen genau anzusehen und deren Ursache zu beheben.


    btw. mysqladmin ist in den mysql- bzw mariadb-client Paketen enthalten.

    ok das mit dem MAILTO gucke ich morgen mal ob das ging.


    Ich will ja eigentlich auch die Meldungen beheben.


    Könnt ihr mir dazu noch weiter helfen?


    Also

    -logrotate will eine Gruppe oder einen Benutzer zugewiesen bekommen (Dazu soll ich eine Sudo-Direktive (?) in deren Configdatei zuweisen (Wo ist die und was muss ich also eingeben??)

    -/var/log/apache2 hat unsichere Berechtigungen (Wie sind sie richtig?)

    -mysqladmin kann sich nicht verbinden (Wie entferne ich das?Also ich mache das sowieso über MySQL Workbench)

    -und das postrotate script für '/var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log ' stürzt ab (bestimmt durch die Fehler davor oderso)



    Also wie kann ich das denn alles beheben?? :conf::helpnew:


    Ich hoffe ihr könnt mir weiterhelfen :bravo2:


    Liebe Grüße und Vielen Dank im Vorraus :danke_ATDE:

    Horst-Leopold

  • < man logrotate >

    logrotate ‐ rotates, compresses, and mails system logs

    ....


    /etc/logrotade.conf steuert logrotade, wie in der Manpage beschrieben.

    Der dortige Eintrag "mail address" bestimmt den Mail Empfänger, wenn ein Logfile rotiert.



    Servus !

    RTFM = Read The Factory Manual, oder so

    Edited once, last by RTFM ().

  • Ok. Danke.



    Und wie kann ich die Probleme lösen?

  • Und wie kann ich die Probleme lösen?

    Indem Du die Manpage zu logrotate liest. Dazu brauchst Du kein Internet, das ist auf Deinem Linux installiert. < man logrotate > Bei Zeile 286 (mail address) wirst Du fündig.


    Da Du einen eigenen Mailserver (mit Empfänger root) betreibst, dürften aber weitere Mails am root Account ankommen. Z.B. wer, wann, womit "sudo" verwendet hat



    Servus !

    RTFM = Read The Factory Manual, oder so

  • Also die Mails werden nur dann versendet, wenn die Scripte oder Programme welche von cron ausgeführt werden an stdout und/oder stderr eine Textausgabe machen. Das ist auch sinnvoll, denn man geht davon aus, dass dies wichtige Meldungen sind, die der Nutzer unbedingt lesen möchte. Und da ja kein terminal auf ist, muss das eben per mail gehen.


    Wenn man das nicht möchte, dann ist es am einfachsten, keine Textmeldungen im cron-Programm auszugeben. Oder eben, diese Meldungen abzufangen und zu ignorieren.


    Hier kann ich zwei Methoden empfehlen:

    1. Wenn Du die Meldungen ganz wegwerfenwillst, dann schreibe hinter die cron-Zeilen:


    Code
    >/dev/null 2>&1



    also z.B.


    Code
    *    *    * * * sh get-image.sh >/dev/null 2>&1


    Dabei werden die Ausgaben von stderr nach stdout umgeleitet und die Ausgabe von stdout nach /dev/null.


    2. Wenn Du die Ausgaben ansehen willst, aber nicht unbedingt immer, dann

    kannst Du sie in ein Log-File umleiten:


    Code
    *    *    * * * sh get-image.sh >/home/pi/logfile.log 2>&1


    oder

    3. Wenn dein Script laenger läuft (evtl. bei @reboot)

    mit einer screen session:


    Code
    @reboot  screen -d -m 'sh get-image.sh'


    screen muss ggf. noch installiert werden


    Mit

    Code
    screen -r


    kannst Du dann bei Bedarf in die Session reinschauen.

    CTRL-A CTRL-d verlaesst sie wieder.

  • -/var/log/apache2 hat unsichere Berechtigungen (Wie sind sie richtig?)

    Wie lauten sie jetzt?

    ls -ld /var/log/apache2

    Default müsste sein:

    Code
     drwxr-x--- 2 root adm 4096 Jan 22 02:25 /var/log/apache2/

    Zum mysql-Problem:

    Was sagt:

    echo "select host, user, password, plugin from mysql.user where user like 'root';" | sudo mysql --table



    RTFM ein kurzer Blick auf das Ausgangsposting würde dir zeigen, dass die Mails von cron generiert werden, nicht von logrotate.

    Der TO will die Fehler, die logrotate auswirft und somit cron veranlassen eine Mail zu generieren, abstellen und nicht den gleichen Inhalt per Mail zusätzlich von einem anderen Service bekommen.

    Menschen die keine Ironie verstehen finde ich super!

    Edited once, last by llutz ().

  • Code
    sudo nano /etc/crontab

    Einfügen vor :

    Code
    # m h dom mon dow user command


    MAILTO=""


    Dann hören die Mails von Cron auf.


    Sieht dann so aus :


    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • das mit mysql gibt aus: Access Denied for User 'root'@'localhost' (using password: NO)


    -> Eben weil der Root Benutzer natürlich ein Passwort hat



    Danke für das mit Apache. Wie setze ich die Berechtigungen so?


    LG