watch comando para excluir arquivos em um diretório a cada N segundos

3

Pensei em usar o comando watch para excluir arquivos em um diretório a cada N segundos com o comando em execução em segundo plano.

Isso é o que eu planejava usar:

nohup watch -n1200 rm -rf /var/log/radius/radacct/8.44.25.17/detail-2013* &

Funciona, mas quando vejo o processo em execução, ele mostra a seguinte saída -

[root@Free-Radius 8.44.25.17]# ps -aef | grep watch
root     27326 10649  0 15:23 pts/0    00:00:00 watch -n1200 rm -rf /var/log/radius/radacct/8.44.25.17/detail-20130816
root     27404 10649  0 15:24 pts/0    00:00:00 grep watch

Agora haverá um novo arquivo detail-20130817 tomorrow, que não será excluído. Existe uma maneira de consegui-lo usando o comando watch? Eu sei que é fácil de fazer usando um script bash ou cron job simples, mas só queria saber se isso pode ser feito usando o watch.

    
por Shrijit 16.08.2013 / 12:11

1 resposta

2

Se estiver usando o comando watch de procps (que inicia um shell para interpretar a linha de comando que é feita da concatenação de seus argumentos), use:

nohup watch -n1200 'rm -rf /var/log/radius/radacct/8.44.25.17/detail-2013*' &

Com algumas outras implementações, talvez seja necessário chamar o shell manualmente:

nohup watch -n1200 sh -c 'rm -rf /var/log/radius/radacct/8.44.25.17/detail-2013*' &

Por que não usar cron embora?

    
por 16.08.2013 / 13:14