스크립트를 사용하여 조치를 수행해야하는 일련의 파일이 디렉토리에 있습니다. 작업이 완료되면 파일이 처리되었다는 로그를 유지하여 다음에 스크립트를 실행할 때 작업을 다시 수행하지 않습니다.
따라서 다음과 같이 처리 해야하는 모든 파일을 찾을 수 있다고 가정 해 보겠습니다.
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 쉘 명령을 사용할 수 있습니다.
또한 처리 된 파일의 파일 이름과 위치는 원래 위치에 남아 있어야합니다. 처리 된 상태를 반영하도록 변경할 수 없습니다.