Ist es möglich, eine Iteration von logrotate manuell auszuführen, ohne sie in einem bestimmten Intervall zu planen?
Antworten
Zu viele Anzeigen?Geben Sie den folgenden Befehl ein, um das angegebene Logrotate auszuführen:
logrotate -vf /etc/logrotate.d/custom
Optionen:
-v :den Prozess anzeigen
-f :forcing run
custom :benutzerdefinierte Log-Einstellung
z.B.: mongodb-log
# mongodb-log rotate
/data/var/log/mongodb/mongod.log {
daily
dateext
rotate 30
copytruncate
missingok
}
Bearbeiten Sie /var/lib/logrotate.status (oder /var/lib/logrotate/logrotate.status), um das Datum der "letzten Rotation" der zu testenden Protokolldatei zurückzusetzen.
Dann laufen logrotate YOUR_CONFIG_FILE
.
Sie können auch die Option --force verwenden, aber durch die Bearbeitung von logrotate.status können Sie genauer bestimmen, was rotiert wird und was nicht.
Ich habe ein Shell-Skript erstellt, um das Problem zu lösen.
https://antofthy.gitlab.io/software/#logrotate_one
Dieses Skript führt nur die einzelne logrotate-Subkonfigurationsdatei in "/etc/logrotate.d" aus, bezieht aber die globalen Einstellungen aus der globalen Konfigurationsdatei "/etc/logrotate.conf" mit ein. Sie können auch andere Otpionen zum Testen verwenden...
Zum Beispiel...
logrotate_one -d syslog
- See previous answers
- Weitere Antworten anzeigen