У меня есть эта конфигурация logrotate, которая не находится в /etc/logrotate.d
/path/to/my/logfile.log {
su root root
daily
maxage 365000
copytruncate
dateext
dateformat -%d.%m.%Y
}
Я запускаю ее crontab:
59 23 * * * root logrotate /path/to/my/logrotate/config > /some/logfile
Каждый день я вижу только два файлы журнала, усеченный файл журнала и новый файл logfile.log-DD-MM-YYYY. Все старые журналы удаляются.
Каждый день я копирую новый повернутый файл и присваиваю ему новое имя, журналы на следующий день с предыдущего дня исчезли. Как я могу это исправить?
В вашей конфигурации вам понадобится следующая строка:
rotate <count>
Замените <count> тем, сколько раз вы хотите, чтобы журнал был повернут, прежде чем он удалит самый старый вращающийся журнал. Таким образом, пять раз:
/path/to/my/logfile.log {
su root root
daily
maxage 365000
copytruncate
dateext
dateformat -%d.%m.%Y
rotate 5
}
Вы можете проверить страницу man logrotate для получения дополнительной информации.
В вашей конфигурации вам понадобится следующая строка:
rotate <count>
Замените <count> тем, сколько раз вы хотите, чтобы журнал был повернут, прежде чем он удалит самый старый вращающийся журнал. Таким образом, пять раз:
/path/to/my/logfile.log {
su root root
daily
maxage 365000
copytruncate
dateext
dateformat -%d.%m.%Y
rotate 5
}
Вы можете проверить страницу man logrotate для получения дополнительной информации.
В вашей конфигурации вам понадобится следующая строка:
rotate <count>
Замените <count> тем, сколько раз вы хотите, чтобы журнал был повернут, прежде чем он удалит самый старый вращающийся журнал. Таким образом, пять раз:
/path/to/my/logfile.log {
su root root
daily
maxage 365000
copytruncate
dateext
dateformat -%d.%m.%Y
rotate 5
}
Вы можете проверить страницу man logrotate для получения дополнительной информации.
Вы не использовали директиву rotate, чтобы указать, сколько оборотов журнала вы хотите сохранить, то есть сколько вращений делать. Если не указано, значением по умолчанию для параметра является 0.
Из config.c источника logrotate установите флажок rotateCount:
int readAllConfigPaths(const char **paths)
{
int i, result = 0;
const char **file;
struct logInfo defConfig = {
.pattern = NULL,
.files = NULL,
.numFiles = 0,
.oldDir = NULL,
.criterium = ROT_SIZE,
.threshhold = 1024 * 1024,
.minsize = 0,
.maxsize = 0,
.rotateCount = 0,
...
<truncated>
Значение 0 для rotate заставит logrotate удалить старые версии журнала, а не вращаться. Это происходит в вашем случае.
Итак, используйте нормальное значение для директивы rotate, чтобы удовлетворить ваши потребности. Например, значение 7 будет выполнять 7 оборотов. Если журналы имеют большой размер, посмотрите также на compress.
Вы не использовали директиву rotate, чтобы указать, сколько оборотов журнала вы хотите сохранить, то есть сколько вращений делать. Если не указано, значением по умолчанию для параметра является 0.
Из config.c источника logrotate установите флажок rotateCount:
int readAllConfigPaths(const char **paths)
{
int i, result = 0;
const char **file;
struct logInfo defConfig = {
.pattern = NULL,
.files = NULL,
.numFiles = 0,
.oldDir = NULL,
.criterium = ROT_SIZE,
.threshhold = 1024 * 1024,
.minsize = 0,
.maxsize = 0,
.rotateCount = 0,
...
<truncated>
Значение 0 для rotate заставит logrotate удалить старые версии журнала, а не вращаться. Это происходит в вашем случае.
Итак, используйте нормальное значение для директивы rotate, чтобы удовлетворить ваши потребности. Например, значение 7 будет выполнять 7 оборотов. Если журналы имеют большой размер, посмотрите также на compress.
Вы не использовали директиву rotate, чтобы указать, сколько оборотов журнала вы хотите сохранить, то есть сколько вращений делать. Если не указано, значением по умолчанию для параметра является 0.
Из config.c источника logrotate установите флажок rotateCount:
int readAllConfigPaths(const char **paths)
{
int i, result = 0;
const char **file;
struct logInfo defConfig = {
.pattern = NULL,
.files = NULL,
.numFiles = 0,
.oldDir = NULL,
.criterium = ROT_SIZE,
.threshhold = 1024 * 1024,
.minsize = 0,
.maxsize = 0,
.rotateCount = 0,
...
<truncated>
Значение 0 для rotate заставит logrotate удалить старые версии журнала, а не вращаться. Это происходит в вашем случае.
Итак, используйте нормальное значение для директивы rotate, чтобы удовлетворить ваши потребности. Например, значение 7 будет выполнять 7 оборотов. Если журналы имеют большой размер, посмотрите также на compress.