Script para encontrar novos arquivos em um diretório e executar um comando

Script para encontrar novos arquivos em um diretório e executar um comando

Eu tenho um diretório com vários ou até centenas de arquivos xml. Quero executar um script quando um novo arquivo for encontrado. o único problema PRINCIPAL é que não consigo usar inotifywait ou algo parecido. Devido à limitação dos direitos de instalação. (Eu tenho os direitos, mas não estou autorizado devido a acordos porque são mantidos pelo nosso fornecedor). Então posso usar scripts, usando as ferramentas básicas do Linux, mas não consigo instalar novas ferramentas. Uma observação extra: ela deve ser escrita para um sistema operacional bastante antigo, opensuse 10.2.

Espero que alguém possa me ajudar a apontar na direção certa.

cumprimentos,

Responder1

Aqui está um pequeno exemplo de script bash simples usando "find -newer" em um loop:

#!/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

Neste exemplo, o script encontra arquivos em /tmp que foram alterados desde o último loop usando o horário de modificação de /tmp/.my_marker atualizado a cada vez. Loop dorme por 5 segundos antes da próxima verificação.

A ação é apenas um eco dos arquivos encontrados; você pode colocar sua própria ação.

informação relacionada