Eu acho que você criou um loop de coisas.
Por exemplo, considere o seguinte script (ruim), vamos chamá-lo de check.sh
:
while :; du -sh /home/user >> /some/file 2>/dev/null; sleep 5; done
Agora crie uma entrada cron
para que check.sh
seja executado a cada 30 minutos:
* * * * * bash /path/to/check.sh
Vamos considerar que o script seja executado pela primeira vez às 10:00, o espaço em disco será verificado e salvo em um arquivo. A parte complicada é sleep 5
, se você não colocar uma condição válida para fechá-la, ela irá pausar o script por 5 segundos e depois continuará do topo significando a mesma operação de verificação e escrita. Esse loop vai continuar e continuar.
Novamente após 30 minutos, cron
inicia um novo processo que fará a mesma coisa repetidas vezes. Lembre-se de que o primeiro processo iniciado por cron
às 10:00 ainda está em execução.
Este ciclo continuará e em 6 horas você terá 13 dos mesmos processos acionados por cron
e, o mais importante, todo processo está sendo executado em um loop indefinido.
Em resumo, ao usar cron
você não precisa de coisas como sleep 5
, a menos que sua operação exija algo assim, no último caso, coloque uma condição válida para que o processo não seja executado indefinidamente.