es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Todos los archivos en los directorios tomcat_*/temp deben ser eliminados en cada reinicio de la aplicación.

Tenemos un script de operación para detener, reiniciar y iniciar los servicios de Tomcat. Me han pedido que haga cambios en el script de operación para que, al iniciar Tomcat con el script de operación script.sh, se eliminen todos los archivos en los directorios tomcat*/temp en cada inicio de la aplicación.

El script es largo, así que solo mostraré un fragmento.

## servicio tomcat
if [[ ${service} == "tomcat" ]]; then

  case ${operation} in 
    stop) # detener los procesos de Java de Tomcat

      $DIR/command_bsiadmin.sh "
      sudo /usr/bin/systemctl stop bsicrm_${port_ui}.service;
      sudo /usr/bin/systemctl stop bsicrm_${port_be}.service;
      sudo /usr/bin/systemctl stop bsicrm_${port_se}.service;" "$1"
      tomcat_status
      ;;

    start) # iniciar los procesos de Java de Tomcat  

      $DIR/command_bsiadmin.sh "
      find /opt/tsi/app/tomcat_*/temp/* -exec rm -rf {} + \; 2>/dev/null; # Aquí aplico mi solución 
      sudo /usr/bin/systemctl start bsicrm_${port_se}.service;  
      sudo /usr/bin/systemctl start bsicrm_${port_be}.service;
      sudo /usr/bin/systemctl start bsicrm_${port_ui}.service;

Después de iniciar los Tomcats, ninguno de los archivos temporales fue eliminado. Lo probé varias veces, pero no tengo idea de qué estoy haciendo mal. ¿No debería el comando find -exec rm eliminar todos los archivos en los directorios tomcat_*/temp? ¡Gracias de antemano!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el comando find -exec rm no está eliminando los archivos en los directorios tomcat_*/temp como se pretendía. Una posible causa podría ser los permisos de archivo, por ejemplo, si el usuario que ejecuta el script no tiene suficientes permisos para eliminar los archivos.

    Para solucionar este problema, se pueden seguir los siguientes pasos:

    1. Verificar si el comando find puede localizar los archivos en los directorios tomcat_*/temp ejecutando el comando por separado fuera del script (por ejemplo, find /opt/tsi/app/tomcat_*/temp/*). Si el comando no devuelve resultados, entonces es posible que los directorios no existan o los permisos sean incorrectos.
    2. Intentar ejecutar el comando find -exec rm con la opción -print para ver qué archivos se seleccionan para eliminar (por ejemplo, find /opt/tsi/app/tomcat_*/temp/* -print -exec rm -rf {} +). Esto puede ayudar a identificar si el comando está funcionando como se espera y seleccionando los archivos correctos para eliminar.
    3. Verificar los registros o la salida del script para ver si hay mensajes de error relacionados con el comando find -exec rm. Esto podría proporcionar más información sobre dónde puede estar ocurriendo el problema.

    También puede ser útil consultar con otros miembros del equipo que estén familiarizados con el script y el entorno del servidor para ver si han encontrado problemas similares o pueden proporcionar orientación adicional.

Comments are closed.