Meio novato em bater, desculpe.
Eu queria gerar um script para inserir todos os diretórios em current_directory com "bifn*0.2e" no nome e excluir automaticamente os arquivos a cada minuto com "acc" no nome. Eles estão sendo continuamente gerados por outro processo. Isso é o que eu tenho e parece funcionar.
#!/bin/bash
while true
do
find /current_directory/bifn*0.2e* -name '*acc*' -mmin +1 -delete
sleep 60
done
Porém, depois de executar o script ./auto_remove, fiz um Ctrl+Z e bg
para mantê-lo em execução em segundo plano. Eu queria que esse script continuasse removendo arquivos mesmo depois de sair do terminal. Essa parte também funciona. Mas agora não posso matar o que ele está fazendo, nem vejo evidências de que o script está funcionando (exceto que os arquivos acc estão sendo removidos!). Tentei digitar ps fjx
ou jobs.
também tentei executar novamente o script com a linha find comentada.
Então, por favor, ajude-me a parar o que está fazendo! E, para uso futuro, como posso fazer o que quero com mais elegância e, ao mesmo tempo, encerrá-lo quando necessário?
Responder1
Bem, descobri o problema ao encerrar. Eu tive que fazer login no nó específico que estava executando aquele script, para então executar kill. Ainda não tenho certeza de como evitar isso no futuro.
Responder2
Metade do script é desnecessária. Remova todas as verificações de tempo. Basta configurá-lo para verificar o nome e excluir. Em seguida, defina-o no crontab a cada minuto. Se você quiser pará-lo por algum motivo, basta parar o cron comentando a linha de execução e reiniciar o cron