Ubuntu 14.04 обеспечивает ротацию журналов для Tomcat 7 и предполагает, что файлы журналов названы по дням, поэтому он ищет те, а существующие архивируются и удаляются. В зависимости от того, существуют ли файлы журнала и как часто они меняются, это может противоречить схеме ежемесячного именования, которую используют мои собственные веб-приложения, размещенные на Tomcat 7:
/etc/cron.daily/tomcat7
:
gzip: /var/log/tomcat7/…/RebootDevice/2017-05.log.gz already exists; not overwritten
Я могу жить с этими сообщениями, отправляемыми каждые несколько дней или недель, потому что сообщения журнала по умолчанию содержат только ошибки, и они не должны возникать слишком часто. Я не понимаю, почему я получаю это сообщение уже второй день. Ubuntu делает следующее:
find /var/log/$NAME/ -name \*.$LOGEXT -daystart -mtime +0 -print0
Я проверил это на моих реальных каталогах со следующими результатами:
root@…:/var/log/tomcat7/…/RebootDevice# ls -lisa
[…]
1089049 0 -rw-r--r-- 1 tomcat7 tomcat7 0 Mai 29 09:09 2017-05.log
1089047 4 -rw-r--r-- 1 tomcat7 adm 402 Mai 26 10:22 2017-05.log.gz
root@…:/var/log/tomcat7/…/RebootDevice# find . -name \*.log -daystart -mtime -0
root@…:/var/log/tomcat7/…/RebootDevice# find . -name \*.log -daystart -mtime +0
./2017-05.log
Как вы можете видеть, вызов с использованием +0
находит мой файл, даже если он был последний раз записан два дня назад, а использование -0
- нет. -mtime
определяется как n*24
часа, поэтому +/-0
не должно иметь никакого значения, и, насколько я понимаю, -daystart
привязывает тесты только к началу полного дня, должно быть 00:00
.
Так почему же -0
против +0
ведут себя по-разному в этом случае? Кажется, разница составляет 1*24
часа.