본문 바로가기

IT/리눅스 Linux

[Bash] 특정 날짜 범위의 로그파일을 쉽게 처리하기

반응형





리눅스에서 어플리케이션 업무를 하다 보면 많은 수의 로그 파일에서 특정 일자에서 생성된 파일을 이용하여 리포트 등을 만들어야 할 때가 있습니다.


굳이 파이썬 까지 사용하지 않고 Bash 및 grep, awk, sed 등으로도 웬만한 작업은 가능한데요, 오늘은 bash를 통해서 파일 이름에 날짜가 들어 있는 경우 RE (Regular expression, 정규표현식) 및 iterator (반복자)를 이용해서 쉽게 처리하는 방법을 소개 해 봅니다.

스크립트는 아래와 같습니다.

정규표현식에서 범위를 나타내는 대괄호를 사용해서 특정 일자 범위를 정의하고, "for" 문을 사용하여 해당 범위에 포함되는 모든 로그 파일에 대해 필요한 작업을 수행 합니다.

(반복문 안에서 $f 변수가 파일의 이름을 나타냅니다)


특정 기간동안에 변경된 파일을 찾는 방법은 find 명령어를 쓰는 방법도 있습니다.

-mtime 옵션으로 최근 몇일 내에 변경된 파일을 찾거나, -newermt 옵션으로 특정 일자 이후에 변경된 파일을 찾을 수 있습니다. \! -newermt 를 사용하면 특정 일자 이전 옵션도 줄 수 있습니다.

 

상황에 따라 적절히 사용하시면 될 것 같네요.


반응형