Cron und Logrotate
TS
- linux
- webserver
Hallo und guten Tag,
ich kämpfe immer noch gegen ein paar Fehler auf meinem Linux-Host. Root bekommt folgende Fehlermeldung:
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
/etc/cron.daily/logrotate:
/usr/bin/mysqladmin: refresh failed; error: 'Unknown error'
error: error running shared postrotate script for '/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1
Ich habe ein Logging für Mysql für abgewiesene Logins eingerichet und dies von fail2ban überwachen lassen. Das klappt auch soweit alles wunschgemäß.
Jetzt klappt aber das Logrotate für das Error-File noch nicht, wie man sieht.
Wo fange ich da jetzt am besten an zu suchen und zu korrigieren?
Dürfen Error-Logs überhaupt in Unterverzeichnisse (hier: /var/log/mysql/mysql.err) verlegt werden, wenn man logrotate nutzen will?
Da stehe ich jetzt seit Tagen mit diversen Ideen zur Problemlösung auf dem Schlauch, finde aber keine substantiierten Anweisungen.
Grüße
TS
Tach!
ich kämpfe immer noch gegen ein paar Fehler auf meinem Linux-Host.
Wichtiger wäre die Information, um welches Linux es sich handelt. Die verschiedenen Distributionen haben teilweise unterschiedliche Ansätze, wie sie bestimmte Dinge angehen.
Wo fange ich da jetzt am besten an zu suchen und zu korrigieren?
Beispielsweise die Logrotate-Scripte untersuchen und die dortigen Kommandos händisch nachvollziehen, um mehr Informationen zur Ursache zu bekommen.
Dürfen Error-Logs überhaupt in Unterverzeichnisse (hier: /var/log/mysql/mysql.err) verlegt werden, wenn man logrotate nutzen will?
Wo die Dateien gefunden werden, gibt man in den Logrotate-Konfigurationen an, gleich in der ersten Zeile (nach eventuellen Kommentaren).
dedlfix.
Hallo und guten Tag Dedlfix,
ich kämpfe immer noch gegen ein paar Fehler auf meinem Linux-Host.
Wichtiger wäre die Information, um welches Linux es sich handelt. Die verschiedenen Distributionen haben teilweise unterschiedliche Ansätze, wie sie bestimmte Dinge angehen.
Stimmt. Habe ich eben leider nicht daran gedacht: Debian 7
3.2.0-4-amd64 #1 SMP Debian 3.2.65-1 x86_64 GNU/Linux
Debian GNU/Linux 7 \n \l
Wo fange ich da jetzt am besten an zu suchen und zu korrigieren?
Beispielsweise die Logrotate-Scripte untersuchen und die dortigen Kommandos händisch nachvollziehen, um mehr Informationen zur Ursache zu bekommen.
Dürfen Error-Logs überhaupt in Unterverzeichnisse (hier: /var/log/mysql/mysql.err) verlegt werden, wenn man logrotate nutzen will?
Wo die Dateien gefunden werden, gibt man in den Logrotate-Konfigurationen an, gleich in der ersten Zeile (nach eventuellen Kommentaren).
dedlfix.
Grüße
TS
Hallo und guten Tag,
Wo die Dateien gefunden werden, gibt man in den Logrotate-Konfigurationen an, gleich in der ersten Zeile (nach eventuellen Kommentaren).
unter /etc/logrotate.d/mysql-server finde ich
# - I put everything in one block and added sharedscripts, so that mysql gets
# flush-logs'd only once.
# Else the binary logs would automatically increase by n times every day.
# - The error log is obsolete, messages go to syslog now.
/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log {
daily
rotate 7
missingok
create 640 mysql adm
compress
sharedscripts
postrotate
test -x /usr/bin/mysqladmin || exit 0
# If this fails, check debian.conf!
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
# Really no mysqld or rather a missing debian-sys-maint user?
# If this occurs and is not a error please report a bug.
#if ps cax | grep -q mysqld; then
if killall -q -s0 -umysql mysqld; then
exit 1
fi
else
$MYADMIN flush-logs
fi
endscript
}
Muss ich mich also mal damit auseinandersetzen.
/var/log/mysql.log ist auch leer. Da muss ich also ggf. nochmal ran und die Einstellungen für die Login-Fehler und für fail2ban ändern.
Grüße
TS
Hallo TS,
ich gehe davon aus, dass du Debian verwendest. Debian braucht einen User mit Root-Rechten, um die Logfiles zu refreshen (das machen sie mit mysqladmin
). Die Daten dazu stellt man in /etc/mysql/debian.cnf
ein. In der Default-Konfiguration ist das bereits der Fall, aber bei dir sieht es so aus, als sei da was schief gegangen, das würde ich zuerst überprüfen.
Wenn das nicht hilft, würde ich mal /usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf flush-logs
mit steigenden Debug-Levels ausführen und schauen, was genau denn da schief geht.
LG,
CK