Sim, você precisa executar logrotatemais de uma vez por dia para conseguir isso. Isso é respondido no segundo parágrafo da página de manual logrotate(8) :
Normalmente, logrotateé executado como um trabalho cron diário. Ele não modifica um log várias vezes em um dia, a menos que o critério desse log seja baseado no tamanho do log e logrotateesteja sendo executado várias vezes por dia, ou a menos que a opção -fou --forceseja usada.
Se você deseja executar a logrotatecada hora, em vez de diariamente, é possível movê-lo:
mv /etc/cron.daily/logrotate /etc/cron.hourly
Desde 3.8.1 houve maxsize. A diferença entre sizee maxsizeé descrita aqui:
maxsize Tamanho
Arquivos de log são giradas durante a crescer mais do que o tamanho bytes antes mesmo do intervalo de tempo especificado adicionalmente ( daily, weekly,
monthlyou yearly). A sizeopção relacionada é semelhante, exceto que é mutuamente exclusiva com as opções de intervalo de tempo e faz com que os arquivos de log sejam girados sem levar em consideração o último tempo de rotação. Quando maxsizeé usado, o tamanho e o carimbo de data e hora de um arquivo de log são considerados.
Isso tornaria os dois adequados para o seu uso: sizesem nenhum intervalo e maxsizese também for necessário. No entanto, isso não altera o fato de que, por padrão, logrotateé executado apenas diariamente. Esse intervalo é adequado para a maioria, pois na maioria dos casos leva muito mais que um dia para um log crescer novamente 250M.