Isto pode ser feito através do logrotate, veja abaixo o exemplo dos logs do apache
Passo 1 # Primeiro certifique-se logrotate está instalado em seu sistema, por padrão está disponível em quase toda a distribuição do Linux
Passo 2 # Crie /etc/logrotate_apache.conf
como abaixo
#-------------------------------------------------------------------------------------
/var/log/httpd/*log {
missingok
minsize 1M
create
compress
rotate 1
lastaction
/sbin/service httpd reload > /dev/null 2>/dev/null || true
Log_dir="/var/log/httpd/Apache_$(date +%F)/"
# move to other location
[[ ! -d "${Log_dir}" ]] && /bin/mkdir "${Log_dir}" && /bin/mv /var/log/httpd/*.gz "${Log_dir}"
endscript
}
# system-specific logs may be also be configured here.
#-------------------------------------------------------------------------------------
Etapa 3 # Definir a tarefa Cron conforme abaixo
00 * * * * /usr/sbin/logrotate -f /etc/logrotate_apache.conf