Soy un poco novato en atacar, lo siento.
Quería generar una secuencia de comandos para ingresar a todos los directorios en current_directory con "bifn*0.2e" en el nombre y luego eliminar automáticamente los archivos cada minuto con "acc" en el nombre. Estos están siendo generados continuamente por otro proceso. Esto es lo que tengo y parece funcionar.
#!/bin/bash
while true
do
find /current_directory/bifn*0.2e* -name '*acc*' -mmin +1 -delete
sleep 60
done
Sin embargo, después de ejecutar el script ./auto_remove, hice Ctrl+Z bg
para mantenerlo ejecutándose en segundo plano. Quería que este script continuara eliminando archivos incluso después de salir de la terminal. Esa parte también funciona. Pero ahora no puedo detener lo que está haciendo, ni veo evidencia de que el script esté funcionando (¡excepto que los archivos acc se están eliminando!). Intenté escribir ps fjx
o jobs.
también intenté volver a ejecutar el script con la línea de búsqueda comentada.
Entonces, ¡ayúdame a detener lo que está haciendo! Y, para uso futuro, ¿cómo puedo hacer de manera más elegante lo que quiero y al mismo tiempo poder finalizarlo cuando sea necesario?
Respuesta1
Bueno, encontré el problema con la terminación. Tuve que iniciar sesión en el nodo particular que estaba ejecutando ese script para luego ejecutar Kill. Todavía no estoy seguro de cómo evitar esto en el futuro.
Respuesta2
La mitad del guión es innecesaria. Elimine todos los controles de tiempo. Simplemente configúrelo para verificar el nombre y eliminarlo. Luego configúrelo en el crontab cada minuto. Si desea detenerlo por algún motivo, simplemente detenga el cron comentando la línea de ejecución y reinicie el cron.