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 часа.
