디렉토리에서 새 파일을 찾고 명령을 실행하는 스크립트

디렉토리에서 새 파일을 찾고 명령을 실행하는 스크립트

여러 개 또는 수백 개의 xml 파일이 포함된 디렉터리가 있습니다. 새 파일이 발견되면 스크립트를 실행하고 싶습니다. 유일한 주요 문제는 inotifywait 또는 이와 유사한 것을 사용할 수 없다는 것입니다. 설치 권한이 제한되어 있기 때문입니다. (저에게 권리가 있지만 공급업체가 유지 관리하기 때문에 계약으로 인해 허용되지 않습니다.) 따라서 기본 Linux 도구를 사용하여 스크립트를 사용할 수 있지만 새 도구를 설치할 수는 없습니다. 한 가지 추가 참고 사항은 꽤 오래된 OS인 opensuse 10.2용으로 작성되어야 한다는 것입니다.

누군가 내가 올바른 방향을 가리킬 수 있도록 도와주길 바랍니다.

문안 인사,

답변1

다음은 루프에서 "find -newer"를 사용하는 간단한 bash 스크립팅의 간단한 예입니다.

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

이 예에서 스크립트는 매번 업데이트되는 /tmp/.my_marker의 수정 시간을 사용하여 마지막 루프 이후 변경된 /tmp에서 파일을 찾습니다. 루프는 다음 확인 전에 5초 동안 휴면 상태입니다.

액션은 발견된 파일의 에코일 뿐이므로 대신 자신만의 액션을 넣을 수 있습니다.

관련 정보