O Cron iniciaria todos os trabalhos praticamente ao mesmo tempo e eles seriam executados simultaneamente.
Para trabalhos de limpeza como esses, seria melhor escrever um script de shell curto para executar o procedimento de maneira seqüencial. Isso impediria que os múltiplos find
fossem atrasados (e tornando o acesso ao disco no restante do sistema potencialmente um pouco lento). Também tornaria mais fácil alterar / atualizar o procedimento de limpeza (por exemplo, adicionar novos diretórios ou modificar os critérios find
etc.) sem precisar modificar sua especificação de cron (ou adicionar mais trabalhos de limpeza). ).
Por exemplo,
#!/bin/bash
for dir in /var/log/{ambari-metrics-collector,k0,POE,REW}; do
[ ! -d "$dir" ] && continue
find "$dir" -type f -mtime +10 -regex '.*\.log.*[0-9]$' -delete
done
Ou apenas
#!/bin/bash
find /var/log/{ambari-metrics-collector,k0,POE,REW} -type f -mtime +10 -regex '.*\.log.*[0-9]$' -delete
(que também produziria erros se um ou vários desses diretórios não existirem, o que pode ou não ser útil saber)
Você, então, agendaria a execução desse script usando o cron da maneira que for apropriada em seu sistema.
Um pouco mais chique:
#!/bin/bash
# directories to clean up
dirs=( /var/log/ambari-metrics-collector
/var/log/k0
/var/log/POE
/var/log/REW
)
for dir in "${dirs[@]}"; do
if [ ! -d "$dir" ]; then
printf 'Dir "%s" does not exist, check this!\n' "$dir" >&2
else
printf 'Removing files from "%s":\n' "$dir"
find "$dir" -type f -mtime +10 -regex '.*\.log.*[0-9]$' -print -delete
fi
done
Ou, desfaça-se dessa abordagem por completo e use logrotate
ou software semelhante e faça a manutenção do arquivo de log corretamente.