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

0

Eu tenho um diretório com várias centenas de arquivos xml. Eu quero executar um script quando um novo arquivo é encontrado. o único problema MAJOR é que não posso 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 é mantido pelo nosso fornecedor). Então eu posso usar scripts, usando as ferramentas básicas do Linux, mas não consigo instalar novas ferramentas. Uma nota extra, tem que ser escrito para um sistema operacional bastante antigo, opensuse 10.2.

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

respeita,

    
por SHLelieveld 02.09.2014 / 13:10

1 resposta

0

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 a hora de modificação de /tmp/.my_marker atualizada a cada vez. Loop dorme por 5 segundos antes do próximo check.

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

    
por 02.09.2014 / 14:19