Estendendo o comentário do sr_, estou usando o logrotate para manter um despejo SQL noturno. Eu tenho essa configuração em /etc/logrotate.d/mydbdump :
/var/backups/dump.sql {
daily
rotate 7
missingok
create 640 root root
compress
}
Basicamente, ele pega o arquivo /var/backups/dump.sql (você deve especificar o nome do seu arquivo de log), comprime-o e renomeia para dump.sql.1.gz . Antes disso, ele gira o antigo dump.sql.1.gz para dump.sql.2.gz e assim por diante e exclui o mais antigo.
logrotate em si é normalmente chamado por cron , portanto, dê uma olhada nos seus diretórios /etc/cron* para controlar quando é executado.