이전에 처리되지 않은 폴더의 파일 처리


6

스크립트를 사용하여 조치를 수행해야하는 일련의 파일이 디렉토리에 있습니다. 작업이 완료되면 파일이 처리되었다는 로그를 유지하여 다음에 스크립트를 실행할 때 작업을 다시 수행하지 않습니다.

따라서 다음과 같이 처리 해야하는 모든 파일을 찾을 수 있다고 가정 해 보겠습니다.

for i in `find /logfolder -name '20*.log'` ; do
    process_log $i
    echo $i >> processedlogsfile
done

그래서 처리 한 로그가 포함 된 파일이 있으며 내 목표는 처리 된 로그가 두 번째로 처리되지 않도록 for 루프를 수정하는 것입니다.

처리 된 로그 파일이 커질 때마다 매번 수동 검색을 수행하는 것은 비효율적입니다.

 if grep -iq "$i" processdlogfiles ; then continue; fi

for 루프를 설정할 때 이러한 파일을 제외 할 수 있으면 좋을 것입니다.

문제의 OS는 제한된 도구 세트 ( attr예 : 명령 없음)를 가진 추가 도구 를 설치할 수있는 방법이없는 관리 도구 인 Linux 파생 제품입니다 (물론 가능하지만 옵션은 아님). 그래도 가장 일반적인 bash 쉘 명령을 사용할 수 있습니다.

또한 처리 된 파일의 파일 이름과 위치는 원래 위치에 남아 있어야합니다. 처리 된 상태를 반영하도록 변경할 수 없습니다.

답변:



0

폴더별로 항목을 분할하는 방법 그런 다음 "처리 중"에는 파일 이동이 포함됩니다.


감사합니다 Brian, 불행히도 파일을 이동하거나 이름을 바꿀 수 없습니다. 질문을 업데이트했습니다
Paul
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.