[파이썬] shutil로 파일 혹은 디렉토리 액세스 로그 작성하기

파일 및 디렉토리 액세스 로그를 작성하는 것은 애플리케이션 또는 시스템의 보안 및 모니터링에 중요한 역할을 합니다. 이를 통해 액세스한 파일이나 디렉토리를 추적하고, 관련 정보를 수집하거나 분석할 수 있습니다. 이번 글에서는 Python의 shutil 모듈을 사용하여 파일 혹은 디렉토리 액세스 로그를 작성하는 방법을 살펴보겠습니다.

shutil 모듈 소개

shutil 모듈은 파일 및 디렉토리 작업을 위한 유용한 함수들을 제공하는 Python의 표준 라이브러리입니다. 이 모듈을 사용하면 파일 복사, 디렉토리 생성 혹은 삭제와 같은 작업을 쉽게 처리할 수 있습니다.

로그 파일 생성 및 기록

먼저, shutil 모듈을 사용하여 파일에 로그를 기록하는 방법을 알아보겠습니다. 아래와 같은 코드를 사용하여 로그 파일을 생성하고, 로그를 기록할 수 있습니다.

import shutil
import datetime

log_file = "access_log.txt"

def write_log(message):
    timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    log_entry = f"[{timestamp}] {message}\n"
    
    with open(log_file, "a") as file:
        file.write(log_entry)

# 파일 액세스 로그 작성 예시
file_name = "example_file.txt"
write_log(f"File accessed: {file_name}")

위의 코드에서, write_log() 함수는 shutil 모듈을 사용하여 액세스 로그를 작성하는 역할을 합니다. datetime 모듈을 사용하여 현재 시간을 기록하여 로그에 추가하였습니다. 로그는 access_log.txt 파일에 누적하여 작성됩니다.

디렉토리 액세스 로그 작성

이번에는 디렉토리 액세스 로그를 작성해보겠습니다. 디렉토리에 대한 로그를 작성할 때도 shutil 모듈의 일부 함수를 사용할 수 있습니다. 아래는 디렉토리 액세스 로그를 작성하는 예시입니다.

import shutil
import datetime

log_file = "access_log.txt"

def write_log(message):
    timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    log_entry = f"[{timestamp}] {message}\n"
    
    with open(log_file, "a") as file:
        file.write(log_entry)

# 디렉토리 액세스 로그 작성 예시
directory_path = "/path/to/example_directory"
write_log(f"Directory accessed: {directory_path}")

위의 코드에서, write_log() 함수를 사용하여 디렉토리 액세스 로그를 작성합니다. 마찬가지로 datetime 모듈을 사용하여 현재 시간을 기록하고, 로그는 access_log.txt 파일에 추가됩니다.

마치며

이번 글에서는 shutil 모듈을 사용하여 파일 및 디렉토리 액세스 로그를 작성하는 방법을 알아보았습니다. 로그 파일을 통해 액세스한 파일이나 디렉토리의 정보를 추적하고, 보안 및 모니터링 목적으로 활용할 수 있습니다. Python의 shutil 모듈은 이러한 작업을 간단하게 처리할 수 있는 유용한 도구입니다.

참고 자료: