Be van állítva a mail.log fájlra, hogy a logrotate naponta rotálja, mégis tegnap egy napot kihagyott. Előtte is rotált, ma is rotált. Mi lehet az oka?
A logrotate.d/mail fájl tartalma:
/var/log/mail.log
{
rotate 378
daily
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
A /var/lib/logrotate/status fájlban minden nap, azaz tegnap is bekerült az aktuális napi dátum.
A naplóban mindhárom napon szerepelnek a következő sorok:
Starting logrotate.service - Rotate log files...
logrotate.service: Deactivated successfully.
Finished logrotate.service - Rotate log files.
Néha még a "logrotate.service: Consumed 2.218s CPU time." sor is szerepel, de más nem, azaz hibaüzenet sincs.
A cron naplójában sem látok semmi furát, eltérést a napok között, nincs hibaüzenet.
Az /etc/logrotate.conf fájlban nincs globálisan megadva a "size" paraméter.
A nem rotált naplóból látszik, hogy minden nap sok sor kerül bele, így a "notifempty" opció sem okozhatta.
Van ötletetek, miért marathatott egyben a tegnapi és a tegnapelőtti log?
- 476 megtekintés
Hozzászólások
A cron-ban semmi furát nem fogsz látni, mert ahogy nézem, ez nem cron-ból fut nálad, hanem SystemD futtatja timer-ből.
Én néznék egy "journalctl -u logrotate.service" kimenetet, bár kétlem, hogy lesz benne bármi. Ha a disken a rotálás pillanatában volt hely akkor valamilyen hiba miatt nem indulhatott el a rotálás, ez utólag logok nélkül sajnos nem kideríthető.
- A hozzászóláshoz be kell jelentkezni
Köszönöm. Mind a cron, mind a logrotate naplóit a journalctl -u paranccsal néztem, és tényleg semmi érdekes nem volt benne. A lemezen sok szabad hely van/volt.
- A hozzászóláshoz be kell jelentkezni
Ezt a "néha még" részt kicsit nyomozni kellene, mert instabil működésre utalhat.
- A hozzászóláshoz be kell jelentkezni
Teljesen igazad van, azért írtam bele a postba, hátha valakinek jelent valamit. Egyébként ennek a sornak a megjelenése, és az, hogy rotál-e vagy sem, nem függ össze. Előfordul így is, úgy is.
- A hozzászóláshoz be kell jelentkezni
logrotate -d /etc/logrotate.d/mail
nem ir ki valami hibát?
- A hozzászóláshoz be kell jelentkezni
A logrotate -d /etc/logrotate.d/mail nem adott semmilyen hibát, és amúgy ma is rendben megcsinálta a léptetést.
Nézem az üzeneteit, és azt látom, hogy figyeli, mennyi idő telt el az utolsó rotálás óta.
Lehetséges, hogy egyik nap valami miatt kicsit később léptette a logot, mondjuk 00:01-kor, másnap pedig 00:00-kor, és így a két léptetés között még nem telt el a teljes 24 óra, és emiatt nem léptetett?
- A hozzászóláshoz be kell jelentkezni
Van is rá tudományos magyarázat. :))
Debian - The "What?!" starts not!
http://nyizsa.blogspot.com
- A hozzászóláshoz be kell jelentkezni
Annak azért lenne jele a logban, a "Starting logrotate.service" időbélyege árulkodik (árulkodna?) róla.
- A hozzászóláshoz be kell jelentkezni
Árulkodik is. Egyszer 00:00, máskor 00:01 és van amikor 00:04. De sajnos úgy tűnik, a 00:04 után következő 00:01-kor is rendben ment a léptetés, tehát nem ez az ok.
Másik tippem, hogyha kézzel elindítom napközben, az okozhat ilyet? Mondjuk érdemben megváltozik a /var/lib/logrotate/status fájlban tárolt adat a fájlról, emiatt a következő napi léptetés elmaradhat? Magamtól azt gondolnám, hogy ebben a fájlban a léptetés ideje tárolódik, emiatt nem. De az AI szerint meg igen.
- A hozzászóláshoz be kell jelentkezni
hogyha kézzel elindítom napközben, az okozhat ilyet?
szerintem simán.
hiszen a 'daily' forgatás megtörtént, szerintem logikus, hogy nem csinálja meg mégegyszer...
(de ez csak tipp/megérzés, nem tudom az ide vonatkozó kódrészlettel bizonyítani)
- A hozzászóláshoz be kell jelentkezni
hiszen a 'daily' forgatás megtörtént, szerintem logikus, hogy nem csinálja meg mégegyszer...
(de ez csak tipp/megérzés, nem tudom az ide vonatkozó kódrészlettel bizonyítani)
case ROT_DAYS:
state->doRotate = ((now.tm_mday != state->lastRotated.tm_mday) ||
(now.tm_mon != state->lastRotated.tm_mon) ||
(now.tm_year != state->lastRotated.tm_year));
if (!state->doRotate) {
message(MESS_DEBUG, " log does not need rotating "
"(log has been rotated at %d-%02d-%02d %02d:%02d, "
"which is less than a day ago)\n",
1900 + state->lastRotated.tm_year,
1 + state->lastRotated.tm_mon,
state->lastRotated.tm_mday,
state->lastRotated.tm_hour,
state->lastRotated.tm_min);
}
break;
- A hozzászóláshoz be kell jelentkezni
Köszi! Ezek szerint ez sem okozhat ilyet. Ami egyrészt jó, mert jól gondoltam, másrészt meg így végképp nem értem, mi történhetett.
- A hozzászóláshoz be kell jelentkezni