Script para buscar nuevos archivos en un directorio y ejecutar un comando

Script para buscar nuevos archivos en un directorio y ejecutar un comando

Tengo un directorio con varios, o incluso cientos, de archivos xml. Quiero ejecutar un script cuando se encuentre un archivo nuevo. el único problema IMPORTANTE es que no puedo usar inotifywait o algo así. Debido a la limitación de los derechos de instalación. (Tengo los derechos, pero no me los permiten debido a acuerdos porque los mantiene nuestro proveedor). Entonces puedo usar scripts, usando las herramientas básicas de Linux, pero no puedo instalar nuevas herramientas. Una nota extra, tiene que estar escrito para un sistema operativo bastante antiguo, opensuse 10.2.

Espero que alguien pueda ayudarme a señalar en la dirección correcta.

saludos,

Respuesta1

Aquí hay un breve ejemplo de scripting bash simple usando "find -newer" en un bucle:

#!/bin/bash
while [ 1 ]; do
  newfiles=`find /tmp -newer /tmp/.my_marker 2>/dev/null`
  touch /tmp/.my_marker
  if [ -n "$newfiles" ]; then
    echo "found files $newfiles"
  fi
  sleep 5
done

En este ejemplo, el script encuentra archivos en /tmp que cambiaron desde el último ciclo utilizando la hora de modificación de /tmp/.my_marker actualizado cada vez. El bucle duerme durante 5 segundos antes de la siguiente comprobación.

La acción es solo un eco de los archivos encontrados, puedes poner tu propia acción en su lugar.

información relacionada